’ 声明 API 函数
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_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
’ 获取鼠标位置的 API 函数
Private Declare Function GetCursorPos Lib “user32” (lpPoint As POINTAPI) As Long
’ 点结构
Private Type POINTAPI
x As Long
y As Long
End Type
’ 窗体的键盘事件
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim pt As POINTAPI
'取当前鼠标位置
If GetCursorPos(pt) Then
Dim CursorX As Long
Dim CursorY As Long
CursorX = pt.x
CursorY = pt.y
Select Case KeyCode
Case vbKeyF1
'拟鼠标左键点击
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Case vbKeyF2
'拟鼠标右键点击
mouse_event MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0
Case vbKeyLeft
'左移动鼠标
CursorX = CursorX - 10
SetCursorPos CursorX, CursorY
Case vbKeyRight
'右移动鼠标
CursorX = CursorX + 10
SetCursorPos CursorX, CursorY
Case vbKeyUp
'上移动鼠标
CursorY = CursorY - 10
SetCursorPos CursorX, CursorY
Case vbKeyDown
'下移动鼠标
CursorY = CursorY + 10
SetCursorPos CursorX, CursorY
End Select
End If
End Sub