您的位置:首页 > 其它

模拟鼠标移动和点击

2016-05-05 16:54 225 查看
模拟鼠标点击很常用,

模拟鼠标移动不常用,但是当你用到时就明白了。

该加的控件都加上,命名随意。

代码很少

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 Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Dim p As POINTAPI
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_MOVE = &H1
Dim b As Boolean

Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Command3_Click()
If Val(Text1) > 60000 Then Text1 = 60000
Timer1.Interval = Val(Text1)
Timer1.Enabled = False
Timer1.Enabled = True
End Sub

Private Sub Form_Load()
Combo1.AddItem "MouseMove"
Combo1.AddItem "MouseClick"
Combo1.ListIndex = 0
Timer1.Interval = Val(Text1)
End Sub

Private Sub Timer1_Timer()
If Combo1.ListIndex = 0 Then

GetCursorPos p

If b = False Then
'Call SetCursorPos(p.x + 5, p.y)
mouse_event MOUSEEVENTF_MOVE, 5, 0, 0, 0
b = True
Else
'Call SetCursorPos(p.x - 5, p.y)
mouse_event MOUSEEVENTF_MOVE, -5, 0, 0, 0
b = False
End If
Else
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End If
End Sub


SetCursorPos和mouse_event MOUSEEVENTF_MOVE的区别是,

其中一个可以禁止屏保。

如果要加全局热键,自行添加。

如果要托盘化,自行添加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: