public static uint SimulateKeyUp(Win32API.VirtualKey vkCode, Win32API.ScanCode scanCode, bool extended) { Win32API.KeyEventFlags flags = Win32API.KeyEventFlags.KEYUP; if (extended) { flags |= Win32API.KeyEventFlags.EXTENDEDKEY; } return(SimulateKeyEvent(vkCode, scanCode, Win32API.KeyEventFlags.KEYUP, UIntPtr.Zero)); }
private static uint SimulateKeyEvent(Win32API.VirtualKey vkCode, Win32API.ScanCode scanCode, Win32API.KeyEventFlags flags, UIntPtr dwExtraInfo) { #if (SIMULATE_KEYS_SENDINPUT) Win32API.INPUT[] inputs = new Win32API.INPUT[] { new Win32API.INPUT { type = Win32API.INPUT_TYPE.INPUT_KEYBOARD, U = new Win32API.InputUnion { ki = new Win32API.KEYBDINPUT { wVk = vkCode, wScan = scanCode, dwFlags = flags, time = 0, dwExtraInfo = dwExtraInfo } } } }; return(Win32API.SendInput((uint)inputs.Length, inputs, Win32API.INPUT.Size)); #else Win32API.keybd_event((uint)vkCode, (uint)scanCode, flags, dwExtraInfo); return(0); #endif }