标题:如何实现vb 模拟鼠标点击其他应用程序内的命令按键
只看楼主
yjz2022
Rank: 1
等 级:新手上路
威 望:1
帖 子:17
专家分:0
注 册:2022-4-27
结帖率:50%
已结贴  问题点数:20 回复次数:37 
如何实现vb 模拟鼠标点击其他应用程序内的命令按键
我们的设备需要和一台老的设备联机工作,老设备没有技术支持,我需要在老设备的电脑上装一个软件(用VB做),需要该软件能实现按老设备软件上的一些按键的功能,用以下的代码(把以下代码复制到VB的一个窗体内,并建两个命令按键和两个文本控件)给text1和text2中填数据可以模拟鼠标移动到屏幕任何位置(包括老设备软件按键的位置),但只能移动到该位置不能实现按下按键的功能,不过如果改text1和text2的数值到下述command2的位置(vb程序窗口内的按键)就可以,也就是只能模拟按下自己的按键,不能其他应用内的按键,求大师指点,非常感谢。


Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4

Private sub command1
SetCursorPos Val(Text1.Text), Val(Text2.Text)
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
end sub
Private sub command2
msgbox"模拟鼠标按键"
end sub



[此贴子已经被作者于2022-5-16 10:12编辑过]

搜索更多相关主题的帖子: vb ByVal 按键 Private Long 
2022-05-16 10:10
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:4 
这种的,你为啥不用按键精灵做。

按键精灵脚本是 VBA ,会用VB,操作VBA 也一般没啥问题,稍注意一点就可以了。

授人于鱼,不如授人于渔
早已停用QQ了
2022-05-16 10:15
yjz2022
Rank: 1
等 级:新手上路
威 望:1
帖 子:17
专家分:0
注 册:2022-4-27
得分:0 
回复 2楼 风吹过b
不知道怎么弄,您能说的再详细点不,有没有参考代码给我参考下,谢谢!
2022-05-16 10:19
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
你开一个按键精灵,用它的 录制功能 录制一个操作,然后看它的脚本代码就能明白。
控制命令 与 VB6 的一样。 都 是  FOR 啊,DO 这些。


授人于鱼,不如授人于渔
早已停用QQ了
2022-05-16 10:36
yjz2022
Rank: 1
等 级:新手上路
威 望:1
帖 子:17
专家分:0
注 册:2022-4-27
得分:0 
回复 楼主 yjz2022
网上都说按我上面的代码就能实现,为什么我测试就只能再VB的应用内实现,离开VB到其他应用就不行。
2022-05-16 10:38
yjz2022
Rank: 1
等 级:新手上路
威 望:1
帖 子:17
专家分:0
注 册:2022-4-27
得分:0 
回复 4楼 风吹过b
我的软件里还要用串口,图像比对等其他功能,所以要把模拟按键的功能植入到我的工程里才可以
2022-05-16 10:41
yjz2022
Rank: 1
等 级:新手上路
威 望:1
帖 子:17
专家分:0
注 册:2022-4-27
得分:0 
回复 4楼 风吹过b
我大概明白你的意思了,你是说用按键精灵录制,就可以间接得到VB源码,然后再植入到我的工程里,是这样吗?谢谢!
2022-05-16 10:44
yjz2022
Rank: 1
等 级:新手上路
威 望:1
帖 子:17
专家分:0
注 册:2022-4-27
得分:0 
回复 7楼 yjz2022
Private Sub Command4_Click()
MoveTo 971, 429
MoveTo 115, 128
Delay 15350
LeftDoubleClick 1
MoveTo 955, 557
Delay 10474
LeftClick 1
End Sub

这个是录制了一个鼠标点击的操作,在VB里无法运行,MoveTo函数没有定义,有这个API吗?
2022-05-16 11:08
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
如果你要用到串口,那就没办法用按键精灵了。那就老老实实用VB6了。

无法实现点击,要查 API 函数说明。

授人于鱼,不如授人于渔
早已停用QQ了
2022-05-16 11:19
yjz2022
Rank: 1
等 级:新手上路
威 望:1
帖 子:17
专家分:0
注 册:2022-4-27
得分:0 
回复 9楼 风吹过b
您是高手,帮忙看下有没有其他办法,谢谢!
2022-05-16 11:32



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




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

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