标题:SendMessage如何向另一程序的多个text发送消息
只看楼主
dwh2005
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2008-3-1
 问题点数:0 回复次数:13 
SendMessage如何向另一程序的多个text发送消息
SendMessage向另一程序的多个text发送消息,另一程序有6个text 我现想用一个程序向它发送消息,但是只能发送两个,发送多个的代码我不会写,希望懂的朋友帮忙一下,谢谢。我现在用的代码
    DoEvents
   
   Dim QQHwnd As Long, RHwnd As Long, subhwnd    As Long, subhwnd1   As Long
   
   QQHwnd = FindWindow(vbNullString, "验证信息")    '捕捉窗口
   subhwnd = FindWindowEx(QQHwnd, 0, "WindowsForms10.EDIT.app.0.218f99c", vbNullString)
   subhwnd1 = FindWindowEx(QQHwnd, 0, "WindowsForms10.EDIT.app.0.218f99c", vbNullString)
   
 Do While subhwnd > 0
       subhwnd = FindWindowEx(QQHwnd, subhwnd, "WindowsForms10.EDIT.app.0.218f99c", vbNullString)    '捕捉第2个文本框
       Exit Do
       Do While subhwnd > 0
       subhwnd1 = FindWindowEx(QQHwnd, subhwnd, "WindowsForms10.EDIT.app.0.218f99c", vbNullString)    '捕捉第2个文本框
       Exit Do
Loop
    Loop

    RHwnd = FindWindowEx(QQHwnd, 0, "WindowsForms10.BUTTON.app.0.218f99c", "登录")
   
    SendMessage subhwnd, WM_SETTEXT, 0, ByVal user.Text               'Text2文本框内为 主程序放入另一个应用程序的文本框的值.
    SendMessage subhwnd1, WM_SETTEXT, 0, ByVal pws.Text
    SendMessage RHwnd, BM_CLICK, 0, 0           '点击确定按钮
搜索更多相关主题的帖子: text SendMessage 
2010-08-11 15:44
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 
TXT的进程ID是不一样的,你可以通过这个区别

偶是菜鸟鸟偶惧WHO?!!!!
2010-08-13 19:58
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 
说错了,你应该遍历他的控件

偶是菜鸟鸟偶惧WHO?!!!!
2010-08-13 20:05
dwh2005
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2008-3-1
得分:0 
有7个text,ID分别是1-7个,但是我实在是不知道怎么用这个ID ,每次发消息都是发到1-3个,小弟是个菜鸟,版主帮个忙吧,谢谢。

[ 本帖最后由 dwh2005 于 2010-8-14 15:47 编辑 ]
2010-08-14 15:45
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 
例子.rar (4.29 KB)

我整合别人程序写的个例子,你看看这个就会了,目的是向工程1。exe中的所有TEXT发送文字

偶是菜鸟鸟偶惧WHO?!!!!
2010-08-14 18:27
dwh2005
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2008-3-1
得分:0 
麻烦版本再帮忙一下,假如只想发给text2.text  text3.text  这个怎么写法,谢谢。
2010-08-15 16:57
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 
这个是倒着罗列TXT的,所以你弄一个标签flag
Dim flag As Integer '''''''''''''''''''''
flag = 6'表示有6个txt

If szCaption = "ThunderRT6TextBox" And (flag = 3 Or flag = 2) Then SendMessage hWndChild, WM_SETTEXT, 0, ByVal "聪聪聪" '''''关键
flag = flag - 1

偶是菜鸟鸟偶惧WHO?!!!!
2010-08-15 17:04
dwh2005
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2008-3-1
得分:0 
非常感觉版主的热心帮助,用这个代码是解决问题了
这个是倒着罗列TXT的,所以你弄一个标签flag
Dim flag As Integer '''''''''''''''''''''
flag = 6'表示有6个txt

If szCaption = "ThunderRT6TextBox" And (flag = 3 Or flag = 2) Then SendMessage hWndChild, WM_SETTEXT, 0, ByVal "聪聪聪" '''''关键
flag = flag - 1

但是我发现要是6个txt中间有combobox控件, 然后发消息给combobox后面的txt发消息就不行了。
2010-08-15 23:29
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 

可以啊,你要按照那个顺序罗列

偶是菜鸟鸟偶惧WHO?!!!!
2010-08-16 10:14
dwh2005
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2008-3-1
得分:0 
txt中有了combobox控件后,如果是发送给所有的TXT是可以,要是我想发送给2个和5个TXT 5个就收不到。接收程序要是我这样做,先在窗口上 添加3个TEXT然后再加一个combobox,最后再加 3个text,这样的话,就会出现第五个txt收不到发消息的消息,如果是先加完6个text然后再在中间加combobox这样就没有问题。

[ 本帖最后由 dwh2005 于 2010-8-16 13:51 编辑 ]
2010-08-16 13:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-315421-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.821067 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved