private static void AddUnicodeInputs(List<NativeMethods.INPUT> inputs, char ch) { var keyDownInput = new NativeMethods.INPUT { Type = NativeMethods.INPUT_KEYBOARD, ki = new NativeMethods.KEYBDINPUT { wVk = 0, wScan = ch, dwFlags = NativeMethods.KEYEVENTF_UNICODE, time = 0, dwExtraInfo = IntPtr.Zero } }; var keyUpInput = new NativeMethods.INPUT { Type = NativeMethods.INPUT_KEYBOARD, ki = new NativeMethods.KEYBDINPUT { wVk = 0, wScan = ch, dwFlags = NativeMethods.KEYEVENTF_UNICODE | NativeMethods.KEYEVENTF_KEYUP, time = 0, dwExtraInfo = IntPtr.Zero } }; inputs.Add(keyDownInput); inputs.Add(keyUpInput); }
private static void AddInputs(List<NativeMethods.INPUT> inputs, VirtualKey virtualKey, uint dwFlags) { var input = new NativeMethods.INPUT { Type = NativeMethods.INPUT_KEYBOARD, ki = new NativeMethods.KEYBDINPUT { wVk = (ushort)virtualKey, wScan = 0, dwFlags = dwFlags, time = 0, dwExtraInfo = IntPtr.Zero } }; if (IsExtendedKey(virtualKey)) { input.ki.dwFlags |= NativeMethods.KEYEVENTF_EXTENDEDKEY; } inputs.Add(input); }