VBobCat
Well-known member
Dear friends,
I would like to command mouse operations with Windows API SendInput function. So I wrote the code below, but it doesn't work. Can anyone point out what I am doing wrong here?
Thank you very much.
I would like to command mouse operations with Windows API SendInput function. So I wrote the code below, but it doesn't work. Can anyone point out what I am doing wrong here?
Thank you very much.
Public Sub MouseMove(ByVal x As Integer, ByVal y As Integer)
Dim iMove As INPUT
iMove.type = INPUT_MOUSE
iMove.u.mi.dwFlags = MOUSEEVENTF_MOVE
iMove.u.mi.dx = x
iMove.u.mi.dy = y
Dim rmove = SendInput(1, {iMove}, Marshal.SizeOf(iMove))
End Sub
Public Sub MouseClick()
Dim iLeftDown, iLeftUp As INPUT
iLeftDown.type = INPUT_MOUSE
iLeftDown.u.mi.dwFlags = MOUSEEVENTF_LEFTDOWN
iLeftUp.type = INPUT_MOUSE
iLeftUp.u.mi.dwFlags = MOUSEEVENTF_LEFTUP
Dim rdown = SendInput(1, {iLeftDown}, Marshal.SizeOf(iLeftDown))
Dim rup = SendInput(1, {iLeftUp}, Marshal.SizeOf(iLeftUp))
End Sub
<DllImport("user32.dll", SetLastError:=True)> _
Private Function SendInput(ByVal cInputs As Integer, ByRef pInputs As INPUT(), ByVal cbSize As Integer) As Integer
End Function
Structure INPUT
Public type As Integer
Public u As InputUnion
End Structure
Private Const KEYEVENTF_KEYUP As Integer = &H2
Private Const INPUT_MOUSE As Integer = 0
Private Const INPUT_KEYBOARD As Integer = 1
Private Const INPUT_HARDWARE As Integer = 2
<StructLayout(LayoutKind.Explicit)> _
Structure InputUnion
<FieldOffset(0)> Public mi As MOUSEINPUT
<FieldOffset(0)> Public ki As KEYBDINPUT
<FieldOffset(0)> Public hi As HARDWAREINPUT
End Structure
Structure MOUSEINPUT
Public dx As Integer
Public dy As Integer
Public mouseData As Integer
Public dwFlags As Integer
Public time As Integer
Public dwExtraInfo As IntPtr
End Structure
Private Const MOUSEEVENTF_MOVE = &H1
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_ABSOLUTE = &H8000
Structure KEYBDINPUT
Public wVk As Short
Public wScan As Short
Public dwFlags As Integer
Public time As Integer
Public dwExtraInfo As IntPtr
End Structure
Structure HARDWAREINPUT
Public uMsg As Integer
Public wParamL As Short
Public wParamH As Short
End Structure