模拟鼠标移动和点击

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

该加的控件都加上,命名随意。
代码很少

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的区别是,
其中一个可以禁止屏保。

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值