怎么控制鼠标自动移动到特定位置?

如题所述

Option Explicit
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) 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 Enum MouseClick
'定义鼠标常数
MOUSEEVENTF_LEFTDOWN = &H2
MOUSEEVENTF_LEFTUP = &H4
MOUSEEVENTF_RIGHTDOWN = &H8
MOUSEEVENTF_RIGHTUP = &H10
MOUSEEVENTF_MIDDLEDOWN = &H20
MOUSEEVENTF_MIDDLEUP = &H40
End Enum
Private Sub Command1_Click()
Dim pt As POINTAPI
pt.X = Me.ScaleWidth \ Screen.TwipsPerPixelX \ 2
pt.Y = Me.ScaleHeight \ Screen.TwipsPerPixelY \ 2
ClientToScreen Me.hwnd, pt
SetCursorPos pt.X, pt.Y '鼠标自动移动到屏幕的中心位置.
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 '自动按下按钮2
End Sub
Private Sub Command2_Click()
Print "123" '按下按钮2后输出字符123
End Sub
Private Sub Form_Load()
With Command2
.Left = (Me.ScaleWidth - .Width) \ 2
.Top = (Me.ScaleHeight - .Height) \ 2
End With
End Sub
Private Sub Timer1_Timer()
Dim pt As POINTAPI
Call GetCursorPos(pt)
ScreenToClient Me.hwnd, pt
Label1 = "x=" & pt.X & ";y=" & pt.Y '随时显示鼠标的相对于窗体坐标x
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-25
,,,,,用手
第2个回答  2016-01-25
,,,,,用手
相似回答