如何向其它程序的Textbox裡發送數據?

sito_hongta 2004-12-13 11:02:03
例如,有一程序abc.exe裡有5個textbox,而我要實現從自己的程序裡輸入數據後,依次向abc.exe裡的5個textbox發送數據,思想是:在自己的程序的文本框裡輸入數據,按Enter鍵後copy,然後在abc.exe裡的某一個textbox裡貼上,自己程序重新獲得焦點。
請求各路好手幫忙,實在是無法忍受沒有TabIndex窗體的數據輸入了,小弟是個數據錄入員當然是想快一點了。
...全文
202 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
YUAN168 2004-12-21
  • 打赏
  • 举报
回复
如果是在同一個程式中就好辦,例如在b窗體中的四個Textbox1的內容發送到a窗體中用RaiseEvent 加幾個參數就可以搞定了!
atestya 2004-12-20
  • 打赏
  • 举报
回复
UP
sito_hongta 2004-12-20
  • 打赏
  • 举报
回复
小馬,能不能搞定,我後來又補發了一張圖片過來了,有沒有去盾,換了個Mail應該可以看得到全部了!
嗷嗷叫的老马 2004-12-17
  • 打赏
  • 举报
回复
呵呵,台资企业啊。

截图看到了......一半...

另一半(上部80%左右)是空的。

不过我已经了解了一点了。我的程序快做完了,就在这几天。

到时我会帖下载地址的。
sito_hongta 2004-12-16
  • 打赏
  • 举报
回复
我是大陸的,現在在東莞一家台資廠上班,是個數據錄入員,業余愛好VB。學以至用嘛,所以想弄一個如上所說的程序。我以把截圖發到你的郵箱裡了。謝謝!
嗷嗷叫的老马 2004-12-16
  • 打赏
  • 举报
回复
怎么,你不是大陆人?用的繁体字
嗷嗷叫的老马 2004-12-16
  • 打赏
  • 举报
回复
我最近正有一朋友和你有相同的要求,你就发你的截图让我看看吧

myjian01#yahoo.com.cn

把#换成@,这是为了防LJ邮件扫描器。
LiangWu25 2004-12-16
  • 打赏
  • 举报
回复
API View里面是沒有BM_Click這個常數,你需要自己在模塊中定義
Const BM_CLICK = &HF5
sito_hongta 2004-12-15
  • 打赏
  • 举报
回复
謝謝online.
只是我要的不是這樣的結果,我要的是對一個數據庫的窗口的數據錄入(需循環使用),要做一個自己的程序,程序的主窗口有4個文本框,和一個command按鈕。目的是,在自己的程序的4個文本框裡分別輸入數據,按command按鈕後,將這4個數據分別輸入公司數據庫的窗口裡的對應的4個文本框,然後,繼續重做上一步(即新增一筆記錄),有沒有辦法實現,誰能夠指點一下,因為這個問題需用到API函數,而API又不是一下就能搞懂的,所以求各路英雄不吝賜教。若有興趣可留下Email,我可以把窗口圖像發過去,明白些!
LiangWu25 2004-12-15
  • 打赏
  • 举报
回复
我覺得online的代碼可以滿足你的要求。你的數據庫窗口的command按鈕不是“保存/確認”嗎?你的程序發送數據和BM_Click消息后,你的數據庫窗口的數據應該是保存到了數據庫里面了,然后又處于"新增數據"的狀態,接著你可以用你的程序接著發送啊。
sito_hongta 2004-12-15
  • 打赏
  • 举报
回复
但是不知道為什麼我的API view裡面,沒有BM_Click這個常數,是不是沒有的只要定義也可以用呢?
boyzhang 2004-12-14
  • 打赏
  • 举报
回复
SendMessage+WM_SETTEXT
嗷嗷叫的老马 2004-12-14
  • 打赏
  • 举报
回复
代码已经测试通过,但有一个问题!

如果是其他的窗口(类也是文本框),而且有内容在先,就会直接把原内容替换,而不是添加。

后来我查了一下,WM_SETTEXT消息,与Text1.Text="XXXXXX"是相同的效果。

不过这个问题似乎不是问题,呵呵..........
wwqna 2004-12-14
  • 打赏
  • 举报
回复
Copy的话就在其它程序上发WM_PASTE消息
LiangWu25 2004-12-14
  • 打赏
  • 举报
回复
up
online 2004-12-14
  • 打赏
  • 举报
回复
以qq为例
2个text控件,1个command控件.

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Option Explicit
Private Const WM_SETTEXT = &HC
Private Const BM_CLICK = &HF5

Private Sub Command1_Click()
ShellExecute Me.hwnd, "open", "D:\Tencent\QQ\QQ.exe", vbNullString, vbNullString, vbNormalFocus
Dim QQHwnd As Long, QHwnd As Long, PHwnd As Long, RHwnd As Long
Do While RHwnd = 0
QQHwnd = FindWindow("#32770", vbNullString)
QHwnd = FindWindowEx(QQHwnd, 0, "ComboBox", vbNullString)
PHwnd = FindWindowEx(QQHwnd, 0, "Edit", vbNullString)
RHwnd = FindWindowEx(QQHwnd, 0, "Button", "怬")
DoEvents
Loop
SendMessage QHwnd, WM_SETTEXT, 0, ByVal Text1.Text 'text1内为QQ号码.
SendMessage PHwnd, WM_SETTEXT, 0, ByVal Text2.Text 'Text2内为密码.
SendMessage RHwnd, BM_CLICK, 0, 0 '点击登录按钮
End
End Sub
caimps 2004-12-13
  • 打赏
  • 举报
回复
复杂了,至少得看看API,要是量不大你就这么凑合着干吧

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧