如何用VB做鼠标连续点击左键
游戏一直用按键精灵,自己也想学习做个。用VB一个开始按钮一个结束按钮一个时间控件。点开始鼠标放在任意地方间隔3秒不停点击,点击结束停止点击。求教这个开始,结束跟时间控件代...
游戏一直用按键精灵,自己也想学习做个。用VB 一个开始 按钮一个结束按钮 一个时间控件 。点开始 鼠标放在任意地方间隔3秒不停点击,点击结束停止点击。求教这个开始 ,结束 跟时间控件 代码怎么写!谢谢!
应该有人有写好的吧 发给我个 展开
应该有人有写好的吧 发给我个 展开
3个回答
展开全部
新建模块,代码如下,声明mouse_events函数
Public 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) '定义鼠标事件
Public Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Public Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
Public Const HTCAPTION = 2
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const MOUSEEVENTF_ABSOLUTE = &H8000 ' absolute move
Public Const MOUSEEVENTF_MOVE = &H1 ' mouse move
'假设开始按钮为command1,结束为为command2,时间控件为Timer1(间隔设置为3000)
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Dim x, y
'我这里使用绝对坐标,单位像素,举例为(100,100),想要在哪里点击自己设定
x = 100 * 65536 / (Screen.Width / Screen.TwipsPerPixelX) ‘对应屏幕横坐标100像素
y = 100 * 65536 / (Screen.Height / Screen.TwipsPerPixelY) ‘对应屏幕纵坐标100像素
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MOVE, x, y, 0, 0 '鼠标移动
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 '模拟鼠标的左键按下
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 '模拟鼠标的左键抬起
End Sub
注:此法会移动鼠标,如果不想移动鼠标可用postmessage函数,自己搜去
Public 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) '定义鼠标事件
Public Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Public Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
Public Const HTCAPTION = 2
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const MOUSEEVENTF_ABSOLUTE = &H8000 ' absolute move
Public Const MOUSEEVENTF_MOVE = &H1 ' mouse move
'假设开始按钮为command1,结束为为command2,时间控件为Timer1(间隔设置为3000)
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Dim x, y
'我这里使用绝对坐标,单位像素,举例为(100,100),想要在哪里点击自己设定
x = 100 * 65536 / (Screen.Width / Screen.TwipsPerPixelX) ‘对应屏幕横坐标100像素
y = 100 * 65536 / (Screen.Height / Screen.TwipsPerPixelY) ‘对应屏幕纵坐标100像素
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MOVE, x, y, 0, 0 '鼠标移动
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 '模拟鼠标的左键按下
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 '模拟鼠标的左键抬起
End Sub
注:此法会移动鼠标,如果不想移动鼠标可用postmessage函数,自己搜去
展开全部
这个写出来得个把小时 , 悬赏的分要是 R计 估计很多人给你写 完整程序
在这里我们只能讨论怎么实现
点击 如果游戏能用键盘按键代替点击 最好用 sendkey 模拟按键
如果不行就要用到API mouse_event
开始 停止 可以控制一个timer的可用不可用
timer 控制点击 ,点击过程要适当延时 ,不然只点击一次 或一次都不起作用
在这里我们只能讨论怎么实现
点击 如果游戏能用键盘按键代替点击 最好用 sendkey 模拟按键
如果不行就要用到API mouse_event
开始 停止 可以控制一个timer的可用不可用
timer 控制点击 ,点击过程要适当延时 ,不然只点击一次 或一次都不起作用
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用mouse_event 函数
追问
不会 能不能帮我写出来 谢谢
追答
Private Declare Sub mouse_event Lib "user32" Alias "mouse_event" (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 ' left button down
Private Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
public sub ddd()
mouse_event MOUSEEVENTF_LEFTDOWN,0,0,0,0
mouse_event MOUSEEVENTF_LEFTUP ,0,0,0,0
end sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询