[VB.NET]使用mouse_event API 來操控滑鼠動作
函式原型
__in DWORD dwFlags,
__in DWORD dx,
__in DWORD dy,
__in DWORD dwData,
__in ULONG_PTR dwExtraInfo
);
參數
參數名稱 | 說明 |
dwFlags | 指示滑鼠動作 |
dx | x座標 (dwFlags有設MOUSEEVENTF_ABSOLUTE時,該座標為絕對座標) |
dy | y座標 (dwFlags有設MOUSEEVENTF_ABSOLUTE時,該座標為絕對座標) |
dwData | dwFlags為MOUSEEVENTF_HWHEEL時,該值代表捲軸捲動的量。
dwFlags為MOUSEEVENTF_XDOWN或MOUSEEVENTF_XUP時,該值可為XBUTTON1 (&H0001)或XBUTTON2 (&H0002)。 當dwFlags不為MOUSEEVENTF_HWHEEL、 MOUSEEVENTF_XDOWN或MOUSEEVENTF_XUP,該值為0。 |
dwExtraInfo | An additional value associated with the mouse event. An application calls GetMessageExtraInfo to obtain this extra information. |
API宣告
簡易使用類別整理如下
Private Declare Function mouse_event Lib "user32.dll" Alias "mouse_event" (ByVal dwFlags As MouseEvent, ByVal dX As Int32, ByVal dY As Int32, ByVal dwData As Int32, ByVal dwExtraInfo As Int32) As Boolean
<Flags()> _
Enum MouseEvent
None
AbsoluteLocation = &H8000
LeftButtonDown = &H2
LeftButtonUp = &H4
Move = &H1
MiddleButtonDown = &H20
MiddleButtonUp = &H40
RightButtonDown = &H8
RightButtonUp = &H10
Wheel = &H800
WheelDelta = 120
XButtonDown = &H100
XButtonUp = &H200
End Enum
#Region "Public Shared Method"
Public Shared Sub LeftButtonDown()
LeftButtonDown(0, 0, False)
End Sub
Public Shared Sub LeftButtonDown(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
mouse_event(MouseEvent.LeftButtonDown Or If(absolateLocation, MouseEvent.AbsoluteLocation, MouseEvent.None), x, y, 0, 0)
End Sub
Public Shared Sub LeftButtonUp()
LeftButtonUp(0, 0, False)
End Sub
Public Shared Sub LeftButtonUp(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
mouse_event(MouseEvent.LeftButtonUp Or If(absolateLocation, MouseEvent.AbsoluteLocation, MouseEvent.None), x, y, 0, 0)
End Sub
Public Shared Sub LeftButtonClick()
LeftButtonClick(0, 0, False)
End Sub
Public Shared Sub LeftButtonClick(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
LeftButtonDown(x, y, absolateLocation)
LeftButtonUp(x, y, absolateLocation)
End Sub
Public Shared Sub LeftButtonDoubleClick()
LeftButtonDoubleClick(0, 0, False)
End Sub
Public Shared Sub LeftButtonDoubleClick(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
LeftButtonClick(x, y, absolateLocation)
LeftButtonClick(x, y, absolateLocation)
End Sub
Public Shared Sub MiddleButtonDown()
MiddleButtonDown(0, 0, False)
End Sub
Public Shared Sub MiddleButtonDown(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
mouse_event(MouseEvent.MiddleButtonDown Or If(absolateLocation, MouseEvent.AbsoluteLocation, MouseEvent.None), x, y, 0, 0)
End Sub
Public Shared Sub MiddleButtonUp()
MiddleButtonUp(0, 0, False)
End Sub
Public Shared Sub MiddleButtonUp(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
mouse_event(MouseEvent.MiddleButtonUp Or If(absolateLocation, MouseEvent.AbsoluteLocation, MouseEvent.None), x, y, 0, 0)
End Sub
Public Shared Sub MiddleButtonClick()
MiddleButtonClick(0, 0, False)
End Sub
Public Shared Sub MiddleButtonClick(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
MiddleButtonDown(x, y, absolateLocation)
MiddleButtonUp(x, y, absolateLocation)
End Sub
Public Shared Sub MiddleButtonDoubleClick()
MiddleButtonDoubleClick(0, 0, False)
End Sub
Public Shared Sub MiddleButtonDoubleClick(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
MiddleButtonClick(x, y, absolateLocation)
MiddleButtonClick(x, y, absolateLocation)
End Sub
Public Shared Sub RightButtonDown()
RightButtonDown(0, 0, False)
End Sub
Public Shared Sub RightButtonDown(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
mouse_event(MouseEvent.RightButtonDown Or If(absolateLocation, MouseEvent.AbsoluteLocation, MouseEvent.None), x, y, 0, 0)
End Sub
Public Shared Sub RightButtonUp()
RightButtonUp(0, 0, False)
End Sub
Public Shared Sub RightButtonUp(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
mouse_event(MouseEvent.RightButtonUp Or If(absolateLocation, MouseEvent.AbsoluteLocation, MouseEvent.None), x, y, 0, 0)
End Sub
Public Shared Sub RightButtonClick()
RightButtonClick(0, 0, False)
End Sub
Public Shared Sub RightButtonClick(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
RightButtonDown(x, y, absolateLocation)
RightButtonUp(x, y, absolateLocation)
End Sub
Public Shared Sub RightButtonDoubleClick()
RightButtonDoubleClick(0, 0, False)
End Sub
Public Shared Sub RightButtonDoubleClick(ByVal x As Integer, ByVal y As Integer, Optional ByVal absolateLocation As Boolean = True)
RightButtonClick(x, y, absolateLocation)
RightButtonClick(x, y, absolateLocation)
End Sub
Public Shared Sub Wheel(ByVal scrollValue As Integer)
mouse_event(MouseEvent.Wheel, 0, 0, scrollValue, 0)
End Sub
#End Region
End Class