| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3533 人关注过本帖
标题:求教用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
快速回复:求教用sendmessage控制其它程序的按钮
数据加载中...
 
   



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

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