public static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize);
public static uint SendInput(INPUT[] inputs) { if (inputs.Length > 0) return Api_User32.SendInput((uint)inputs.Length, inputs, Marshal.SizeOf(inputs[0])); else return 0; }
public static void SetMousePosition(int dx, int dy, bool relative) { INPUT[] inp = new INPUT[1]; inp[0].type = Win32Const.INPUT_MOUSE; if (relative) inp[0].mi.dwFlags = Win32Const.MOUSEEVENTF_MOVE; else inp[0].mi.dwFlags = Win32Const.MOUSEEVENTF_MOVE | Win32Const.MOUSEEVENTF_ABSOLUTE; inp[0].mi.dx = dx; inp[0].mi.dy = dy; inp[0].mi.mouseData = 0; inp[0].mi.time = 0; inp[0].mi.dwExtraInfo = Api_User32.GetMessageExtraInfo(); Win32.SendInput(inp); }
//*************************************************************************** // USER32 - Input public static void SendKeyPress(VK key) { INPUT[] inp = new INPUT[1]; inp[0].type = Win32Const.INPUT_KEYBOARD; inp[0].ki.wScan = 0; inp[0].ki.dwFlags = 0; inp[0].ki.time = 0; inp[0].ki.wVk = (ushort)key; inp[0].ki.dwExtraInfo = Api_User32.GetMessageExtraInfo(); Win32.SendInput(inp); // And now send the key release. inp[0].ki.dwFlags = Win32Const.KEYEVENTF_KEYUP; Win32.SendInput(inp); }