| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3534 人关注过本帖
标题:求教用sendmessage控制其它程序的按钮
取消只看楼主 加入收藏
bccnvb6
Rank: 2
等 级:论坛游民
帖 子:28
专家分:15
注 册:2008-10-17
结帖率:100%
收藏
 问题点数:0 回复次数:6 
求教用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
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
bccnvb6
Rank: 2
等 级:论坛游民
帖 子:28
专家分:15
注 册:2008-10-17
收藏
得分:0 
不是同一工程,是两个程序.
2008-10-18 21:47
bccnvb6
Rank: 2
等 级:论坛游民
帖 子:28
专家分:15
注 册:2008-10-17
收藏
得分:0 
其实那个被控制程序是我单位办公用的一个软件,我是想编一个可以控制那个办公软件的程序。我只知道那个软件在运行,不知道它是否在监听,也无法为它的COMMAND设置快捷键。
2008-10-19 20:22
bccnvb6
Rank: 2
等 级:论坛游民
帖 子:28
专家分:15
注 册:2008-10-17
收藏
得分:0 
我把两个程序传上来吧。
要求不能修改被控制程序,只能通过控制程序来触发被控制程序的“接收信号”按钮的click事件。
2008-10-19 20:52
bccnvb6
Rank: 2
等 级:论坛游民
帖 子:28
专家分:15
注 册:2008-10-17
收藏
得分:0 
两个程序
控制其它程序的控件.rar (7.85 KB) 两个程序

2008-10-19 20:53
bccnvb6
Rank: 2
等 级:论坛游民
帖 子:28
专家分:15
注 册:2008-10-17
收藏
得分:0 
[bo][un]Joforn[/un] 在 2008-10-20 08:27 的发言:[/bo]

唉……关键的一句我已经给了你,你还没想出来?
你按下面的步骤就行了:
1、找到你要按下的Button的句柄并赋值给thWnd;
2、向thWnd发送按钮Click消息(SendMessage thWnd, BM_CLICK, 0&, 0&)。

总共也就几个 ...


唉……终于想出来了!
其实昨天就试过改成 SendMessage thWnd, BM_CLICK, 0&, 0&
不过还是没成功。今天看到贴子,再次检查代码的时候,才恍然想起没有为BM_CLICK
赋值。在添加了Const BM_CLICK = &HF5 这一句之后,问题迎刃而解。

多谢各位的关注!
2008-10-20 21:07
快速回复:求教用sendmessage控制其它程序的按钮
数据加载中...
 
   



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

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