标题:求教用sendmessage控制其它程序的按钮
只看楼主
bccnvb6
Rank: 2
等 级:论坛游民
帖 子:28
专家分:15
注 册:2008-10-17
结帖率:100%
 问题点数:0 回复次数:12 
求教用sendmessage控制其它程序的按钮
想编个控制其它程序的按钮的程序,当中用到了sendmessage函数
,不过我对sendmessage的参数不太会用。程序虽然成功给目标程序的按钮发送了消息,却不能触发目标程序按钮的click事件。请各位帮忙看看,具体如下:
   
    两个程序,一个是控制程序,另一个是被控制程序。两个程序都分别有一个标签和一个命令按钮。

'控制程序代码:
Private Sub Command1_Click() '

Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202

Dim win1 As Long
Dim cmd As Long

win1 = FindWindow(vbNullString, "被控制程序")
cmd = GetWindow(win1, 5)
SendMessage  cmd, WM_LBUTTONDOWN, 0, 0
SendMessage  cmd, WM_LBUTTONUP, 0, 0

Label1.Caption = "已发出信号!"

End Sub


'被控制程序代码
Private Sub Command1_Click()
Label1.Caption = "成功接收到信号!"
End Sub

j1.JPG (31.56 KB)
搜索更多相关主题的帖子: sendmessage 按钮 
2008-10-18 20:18
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 

Call sendMessage(FormXCommand1.hwnd, WM_LBUTTONDOWN, 0, &H20002)
Call sendMessage(FormXCommand1.hwnd, WM_LBUTTONUP, 0, &H20002)

偶是菜鸟鸟偶惧WHO?!!!!
2008-10-18 20:37
bccnvb6
Rank: 2
等 级:论坛游民
帖 子:28
专家分:15
注 册:2008-10-17
得分:0 
未解决。
cmd = GetWindow(win1, 5)
这句代码已经成功取得被控制程序的“接收信号”按钮的句柄。
但就是无法触发按钮的click事件。

SendMessage  cmd, WM_LBUTTONDOWN, 0, 0
SendMessage  cmd, WM_LBUTTONUP, 0, 0

换成
Call sendMessage(FormXCommand1.hwnd, WM_LBUTTONDOWN, 0, &H20002)
Call sendMessage(FormXCommand1.hwnd, WM_LBUTTONUP, 0, &H20002)
也不行

j2.JPG (32.6 KB)
2008-10-18 21:09
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 
是同一个工程吗?

偶是菜鸟鸟偶惧WHO?!!!!
2008-10-18 21:29
bccnvb6
Rank: 2
等 级:论坛游民
帖 子:28
专家分:15
注 册:2008-10-17
得分:0 
不是同一工程,是两个程序.
2008-10-18 21:47
haigecnpeng
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:261
专家分:510
注 册:2008-10-6
得分:0 
被控制程序是否应该在监听状态啊?

都说到了.net年代,VB与C#都是一样的!
但为什么招聘的都是C#呢?
2008-10-19 00:39
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 
这个取巧呗
点击先给被控对象焦点
然后再按下对应的快捷键(你给那个COMMAND设置个快捷键)

偶是菜鸟鸟偶惧WHO?!!!!
2008-10-19 11:22
bccnvb6
Rank: 2
等 级:论坛游民
帖 子:28
专家分:15
注 册:2008-10-17
得分:0 
其实那个被控制程序是我单位办公用的一个软件,我是想编一个可以控制那个办公软件的程序。我只知道那个软件在运行,不知道它是否在监听,也无法为它的COMMAND设置快捷键。
2008-10-19 20:22
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
得分:0 
SendMessage thWnd, BM_CLICK, 0&, 0& 'thWnd为你要按下的Button的hWnd

VB QQ群:47715789
2008-10-19 20:26
bccnvb6
Rank: 2
等 级:论坛游民
帖 子:28
专家分:15
注 册:2008-10-17
得分:0 
我把两个程序传上来吧。
要求不能修改被控制程序,只能通过控制程序来触发被控制程序的“接收信号”按钮的click事件。
2008-10-19 20:52



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




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

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