|
|
|
|
||
'API声明
'=========================================
'查找窗口
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'设置指针位置或设置目的坐标
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
'取窗口矩形范围坐标
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) 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 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Type RECT '目标窗口矩形范围坐标结构
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Const MOUSEEVENTF_LEFTDOWN = &H2 ' 鼠标左键按下
Private Const MOUSEEVENTF_LEFTUP = &H4 ' 鼠标左键弹起
Private Sub Command1_Click()
Dim ck_hwnd As Long '定义计算器窗口句柄变量
ck_hwnd = FindWindow("SciCalc", "计算器") 'SciCalc 取计算器窗口句柄
Text1.Text = Str(ck_hwnd)
Dim ck_R As RECT
If ck_hwnd <> 0 Then
GetWindowRect ck_hwnd, ck_R ' 取计算器窗口矩形范围坐标,或左上角坐标及右下角坐标
Label2.Caption = Str(ck_R.Left) & Str(ck_R.Top) & Str(ck_R.Right) & Str(ck_R.Bottom)
SetCursorPos 350 + ck_R.Left, 150 + ck_R.Top '设置鼠标指针
Sleep (100)
'按下数字键8
mouse_event MOUSEEVENTF_LEFTDOWN, 350 + ck_R.Left, 150 + ck_R.Top, 0, 0
Sleep (50)
mouse_event MOUSEEVENTF_LEFTUP, 350 + ck_R.Left, 150 + ck_R.Top, 0, 0
'按下数字键5
Sleep (100)
SetCursorPos 350 + ck_R.Left, 180 + ck_R.Top '设置鼠标指针
mouse_event MOUSEEVENTF_LEFTDOWN, 350 + ck_R.Left, 180 + ck_R.Top, 0, 0
Sleep (50)
mouse_event MOUSEEVENTF_LEFTUP, 350 + ck_R.Left, 180 + ck_R.Top, 0, 0
'按下数字键4
Sleep (100)
SetCursorPos 308 + ck_R.Left, 180 + ck_R.Top '设置鼠标指针
mouse_event MOUSEEVENTF_LEFTDOWN, 308 + ck_R.Left, 180 + ck_R.Top, 0, 0
Sleep (50)
mouse_event MOUSEEVENTF_LEFTUP, 308 + ck_R.Left, 180 + ck_R.Top, 0, 0
'按下数字键4
Sleep (100)
SetCursorPos 308 + ck_R.Left, 180 + ck_R.Top '设置鼠标指针
mouse_event MOUSEEVENTF_LEFTDOWN, 308 + ck_R.Left, 180 + ck_R.Top, 0, 0
Sleep (50)
mouse_event MOUSEEVENTF_LEFTUP, 308 + ck_R.Left, 180 + ck_R.Top, 0, 0
Sleep (100)
SetCursorPos 350 + ck_R.Left, 150 + ck_R.Top '设置鼠标指针
mouse_event MOUSEEVENTF_LEFTDOWN, 350 + ck_R.Left, 150 + ck_R.Top, 0, 0
Sleep (50)
mouse_event MOUSEEVENTF_LEFTUP, 350 + ck_R.Left, 150 + ck_R.Top, 0, 0
'按下数字键7
Sleep (100)
SetCursorPos 308 + ck_R.Left, 150 + ck_R.Top '设置鼠标指针
mouse_event MOUSEEVENTF_LEFTDOWN, 308 + ck_R.Left, 150 + ck_R.Top, 0, 0
Sleep (50)
mouse_event MOUSEEVENTF_LEFTUP, 308 + ck_R.Left, 150 + ck_R.Top, 0, 0
'按下数字键9
Sleep (100)
SetCursorPos 385 + ck_R.Left, 150 + ck_R.Top '设置鼠标指针
mouse_event MOUSEEVENTF_LEFTDOWN, 385 + ck_R.Left, 150 + ck_R.Top, 0, 0
Sleep (50)
mouse_event MOUSEEVENTF_LEFTUP, 385 + ck_R.Left, 150 + ck_R.Top, 0, 0
'按下数字键1
Sleep (100)
SetCursorPos 308 + ck_R.Left, 210 + ck_R.Top '设置鼠标指针
mouse_event MOUSEEVENTF_LEFTDOWN, 308 + ck_R.Left, 210 + ck_R.Top, 0, 0
Sleep (50)
mouse_event MOUSEEVENTF_LEFTUP, 308 + ck_R.Left, 210 + ck_R.Top, 0, 0
'按下数字键5
Sleep (100)
SetCursorPos 350 + ck_R.Left, 180 + ck_R.Top '设置鼠标指针
mouse_event MOUSEEVENTF_LEFTDOWN, 350 + ck_R.Left, 180 + ck_R.Top, 0, 0
Sleep (50)
mouse_event MOUSEEVENTF_LEFTUP, 350 + ck_R.Left, 180 + ck_R.Top, 0, 0
End If
End Sub