這個代碼片斷 需要 一個窗體Form~~三個命令按鈕CommandButton 四個標簽框Label 一個模塊
注釋:以下代碼在Form1中
注釋:************[ Functions ]********************************
#If Win32 Then
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)
注釋:【參數(shù)表】
注釋:dwFlags -------- Long,下述標志的一個組合
注釋:MOUSEEVENTF_ABSOLUTE
注釋:dx和dy指定鼠標坐標系統(tǒng)中的一個絕對位置。在鼠標坐標系統(tǒng)中,屏幕在水平和垂
注釋: 直方向上均勻分割成65535×65535個單元 - MOUSEEVE
注釋: NTF_MOVE
注釋:移動鼠標
注釋:MOUSEEVENTF_LEFTDOWN
注釋:模擬鼠標左鍵按下
注釋:MOUSEEVENTF_LEFTUP
注釋:模擬鼠標左鍵抬起
注釋:MOUSEEVENTF_RIGHTDOWN
注釋:模擬鼠標右鍵按下
注釋:MOUSEEVENTF_RIGHTUP
注釋:模擬鼠標右鍵按下
注釋:MOUSEEVENTF_MIDDLEDOWN
注釋:模擬鼠標中鍵按下
注釋:MOUSEEVENTF_MIDDLEUP
注釋:模擬鼠標中鍵按下
注釋:dx
注釋:Long,根據是否指定了MOUSEEVENTF_ABSOLUTE標志,指定水平方向的絕對位置或相
注釋: 對運動
注釋:dy ------------- Long,根據是否指定了MOUSEEVENTF_ABSOLUTE標志,指定垂直
注釋: 方向的絕對位置或相對運動
注釋:cButtons ------- Long,未使用
注釋:dwExtraInfo ---- Long,通常未用的一個值。用GetMessageExtraInfo函數(shù)可取得
注釋: 這個值??捎玫闹等Q于特定的驅動程序
#End If 注釋:WIN32
注釋:**********<<[ EOF ]>>***********************************
Dim p1 As POINTAPI, p2 As POINTAPI
Dim x
Dim Y
Dim X1
Dim Y1
Private Const MOUSEEVENTF_MOVE = &H1
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_ABSOLUTE = &H8000
Private Sub Command1_Click()
MsgBox "no"
End Sub
Private Sub Command2_Click()
MsgBox "yes"
End Sub
Private Sub Command3_Click()
Call MoveCursor(p1, p2) 注釋:Mouse由Command1 ->Command2
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, X1, Y1, 0, 0
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, X1, Y1, 0, 0
End Sub
Private Sub Form_Load()
Dim rect5 As RECT
Call GetWindowRect(Command1.hwnd, rect5) 注釋:取得Command1相對於Screen的座標
p1.x = (rect5.Left + rect5.Right) / 2
p1.Y = (rect5.ToP + rect5.Bottom) / 2
Call GetWindowRect(Command2.hwnd, rect5)
p2.x = (rect5.Left + rect5.Right) / 2
p2.Y = (rect5.ToP + rect5.Bottom) / 2
Label1.Caption = p2.x
Label2.Caption = p2.Y
x = Label1.Caption
Y = Label2.Caption
X1 = (65535 / 1024) * x
Y1 = (65535 / 768) * Y
Label3.Caption = X1
Label4.Caption = Y1
End Sub
注釋:以下代碼在模塊里
Type RECT
Left As Long
ToP As Long
Right As Long
Bottom As Long
End Type
Type POINTAPI
x As Long
Y As Long
End Type
Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal Y As Long) As Long
Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Sub MoveCursor(FromP As POINTAPI, ToP As POINTAPI)
Dim stepx As Long, stepy As Long, k As Long
Dim i As Long, j As Long, sDelay As Long
stepx = 1
stepy = 1
i = (ToP.x - FromP.x)
If i < 0 Then stepx = -1
i = (ToP.Y - FromP.Y)
If i < 0 Then stepy = -1
For i = FromP.x To ToP.x Step stepx
Call SetCursorPos(i, FromP.Y)
Sleep (1)
Next i
For i = FromP.Y To ToP.Y Step stepy
Call SetCursorPos(ToP.x, i)
Sleep (1)
Next i
End Sub
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請
點擊舉報。