static MOUSEINPUT ToMouseInputForButtonUp(MouseButtonType button) { var mi = new MOUSEINPUT(); switch (button) { case MouseButtonType.Left: mi.dwFlags = MOUSEEVENTF.LEFTUP; break; case MouseButtonType.Right: mi.dwFlags = MOUSEEVENTF.RIGHTUP; break; case MouseButtonType.Middle: mi.dwFlags = MOUSEEVENTF.MIDDLEUP; break; case MouseButtonType.XButton1: mi.mouseData = NativeKeyboardMouse.MouseData_XBUTTON1; mi.dwFlags = MOUSEEVENTF.XUP; break; case MouseButtonType.XButton2: mi.mouseData = NativeKeyboardMouse.MouseData_XBUTTON2; mi.dwFlags = MOUSEEVENTF.XUP; break; default: throw new InvalidOperationException(); } return(mi); }
public static void WheelHorizontally(int delta) { var mi = new MOUSEINPUT { mouseData = (uint)delta, dwFlags = MOUSEEVENTF.HWHEEL, }; SendMouseInput(mi); }
// Remarks: Depends on "Pointer Speed". public static void MoveDelta(Vector delta) { var mi = new MOUSEINPUT { dx = (int)delta.X, dy = (int)delta.Y, dwFlags = MOUSEEVENTF.MOVE, }; SendMouseInput(mi); }
static void SendMouseInput(MOUSEINPUT mi) { NativeKeyboardMouse.SendInput(new[] { ToInput(mi) }); }