| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 303 人关注过本帖
标题:【求援助】按键盘,让鼠标单击,求思路
只看楼主 加入收藏
mmttvv11
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-4-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
【求援助】按键盘,让鼠标单击,求思路
大神帮帮忙!
比如按下Q键,让鼠标右键在300,200处,单击一下,什么思路啊
最好写个例子看看。。


[ 本帖最后由 mmttvv11 于 2014-4-3 17:32 编辑 ]
搜索更多相关主题的帖子: 最好 键盘 
2014-04-03 17:30
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:7 
HOOK 键盘,定义热键。然后 使用 API 模拟 鼠标点击。

API 不熟,自己琢磨吧。

授人于鱼,不如授人于渔
早已停用QQ了
2014-04-03 20:02
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:652
专家分:3402
注 册:2008-5-7
收藏
得分:7 
新建一个工程,在窗口里放一个按钮控件,放一个标签控件(label),放一个时钟控件,拷贝下列代码,鼠标会每隔2秒钟自动点击按钮,标签里的数自动累加(手动点击按钮也会累加)
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 Sub Command1_Click()
  Label1.Caption = Val(Label1.Caption) + 1
End Sub

Private Sub Form_Load()
  Timer1.Interval = 2000
End Sub

Private Sub Timer1_Timer()
  Dim x As Long, y As Long
  x = (Me.Left + Command1.Left + 600) / 15
  y = (Me.Top + Command1.Top + 600) / 15
  SetCursorPos x, y
  mouse_event &H2, 0, 0, 0, 0
  mouse_event &H4, 0, 0, 0, 0
End Sub
2014-04-03 20:15
茅十八
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:35
专家分:123
注 册:2014-3-11
收藏
得分:7 
程序代码:
'新建一个VB工程,把form1的KeyPreview属性设置为True。这样,当有按键操作时,首先执行form1的KeyPress事件

'需要用到2个API函数,SetCursorPos用来设置光标位置,mouse_event模拟鼠标按键
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_RIGHTDOWN As Long = &H8
Private Const MOUSEEVENTF_RIGHTUP As Long = &H10
'下面,模拟按键操作
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc("Q") Or KeyAscii = Asc("q") Then  '如果按下Q建
SetCursorPos 300, 200 '鼠标移动到(300,200)处
mouse_event MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0 '鼠标右键按下
mouse_event MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 '鼠标右键抬起
End If
End Sub

个人QQ:1789851851,有学习问题,欢迎找我讨论,另外Win32 SDK开发群:179492890
2014-04-03 21:29
快速回复:【求援助】按键盘,让鼠标单击,求思路
数据加载中...
 
   



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

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