/// <summary> /// Sends mouse data to sendinput /// </summary> /// <param name="point">The position of the mouse.</param> /// <param name="wData">mouse data</param> /// <param name="eventF">mouse event flags.</param> private static void send(Point point, uint wData, MouseEventF eventF) { // Written, 08.10.2020 Input[] inputs = new Input[1]; inputs[0].type = 0; inputs[0].U = createMouseInput(point.X, point.Y, wData, 0, eventF); NM.SendInput((uint)inputs.Length, inputs, Input.Size); }
private static Input CreateInput(MouseEventF mouseEvent) { var input = new Input() { Type = InputType.Mouse, Union = new InputUnion() { MouseInput = new MouseInput() { DwFlags = mouseEvent } } }; return(input); }
public static Input GetMouseInput(MouseEventF mouseEventF, int dx = 0, int dy = 0, int mouseData = 0, uint time = 1, uint dwExtraInfo = 1) { return(new Input() { type = InputType.MOUSE, U = new InputUnion() { mi = new MouseInput() { dx = dx, dy = dy, mouseData = mouseData, dwFlags = mouseEventF, time = time, dwExtraInfo = (UIntPtr)dwExtraInfo } } }); }
// Shamelessly copied from https://stackoverflow.com/questions/35138778/sending-keys-to-a-directx-game public static void SendDirectXMouse(MouseEventF flags, int x = 0, int y = 0) { Input[] inputs = { new Input { Type = (int)InputType.Mouse, InputUnion = new InputUnion { mi = new MouseInput() { dx = x, dy = y, dwFlags = (uint)flags, dwExtraInfo = GetMessageExtraInfo() } } } }; SendInput((uint)inputs.Length, inputs, Marshal.SizeOf(typeof(Input))); }
internal static extern void mouse_event(MouseEventF Flags, int x, int y, int Data, int ExtraInfo);
public static extern void mouse_event(MouseEventF dwFlags, uint dx, uint dy, uint dwData, int dwExtraInfo);
public static void MouseButton(MouseEventF button) { mouse_event((uint)button, 0, 0, 0, 0); }
public static extern void mouse_event( MouseEventF dwFlags, uint dx, uint dy, uint dwData, uint dwExtraInfo);
public static extern void mouse_event([In] MouseEventF dwFlags, [In] int dx, [In] int dy, [In] uint dwData, [In] uint dwExtraInfo);
/// <summary> /// Creates required stuff to simulate mouse movement. /// </summary> /// <param name="x">The x.</param> /// <param name="y">The y.</param> /// <param name="data">Data to pass.</param> /// <param name="time">The time of event.</param> /// <param name="flag">flags to pass.</param> private static InputUnion createMouseInput(int x, int y, uint data, uint time, MouseEventF flag) { // Written, 06.10.2020 InputUnion result = new InputUnion { mi = new MouseInput() { dx = x, dy = y, mouseData = data, time = time, dwFlags = flag } }; return(result); }