// Written, 08.10.2020 /// <summary> /// Sends the provided key. /// </summary> /// <param name="key">The key to send</param> private static void send(VirtualKeyShort wVk, KeyEventF eventF) { // Written, 06.10.2020 Input[] inputs = new Input[1]; inputs[0].type = 1; // 1 = Keyboard Input inputs[0].U = createKeyEvent(wVk, eventF, 0, UIntPtr.Zero); if (NativeMethods.SendInput((uint)inputs.Length, inputs, Input.Size) == 0) { MoControlsMod.print(string.Format("Error: {0}", new Win32Exception(Marshal.GetLastWin32Error()).Message), Debugging.DebugTypeEnum.full); } }
/// <summary> /// Creates a key event wrapped in a inputUnion structure. Passed to: <see cref="NativeMethods.SendInput(uint, Input[], int)"/> /// </summary> /// <param name="wScan">The scan keycode</param> /// <param name="dwFlags">dword flags</param> /// <param name="time">the time?</param> /// <param name="dwExtraInfo">dword extra info</param> /// <returns></returns> private static InputUnion createKeyEvent(VirtualKeyShort wVk, KeyEventF dwFlags, int time, UIntPtr dwExtraInfo) { // Written, 08.10.2020 InputUnion result = new InputUnion { ki = new KeyboardInput() { dwExtraInfo = dwExtraInfo, dwFlags = dwFlags, time = time, wVk = wVk, } }; return(result); }
public static Input GetKeyboardInput(ScanCodeShort keyScanCodeShort, VirtualKeyShort virtualKeyShort, KeyEventF keyEventF) { return(new Input() { type = InputType.KEYBOARD, U = new InputUnion() { ki = new KEYBDINPUT() { wScan = keyScanCodeShort, wVk = virtualKeyShort, dwFlags = keyEventF } } }); }
public static void SendKey(ushort key, KeyEventF keyEvent) { Input[] inputs = { new Input { type = (int)InputType.Keyboard, u = new InputUnion { ki = new KeyboardInput { wVk = 0, wScan = key, dwFlags = (uint)(keyEvent | KeyEventF.Scancode), dwExtraInfo = GetMessageExtraInfo() } } } }; SendInput((uint)inputs.Length, inputs, Marshal.SizeOf(typeof(Input))); }
public static extern void keybd_event([In] VirtualKeyCode bVk, [In] byte bScan, [In] KeyEventF dwFlags, [In] uint dwExtraInfo);