/// <summary> /// Simulate a keyboard key action (up or down) /// </summary> /// <param name="Keycode">Hardware ScanCode of the key to simulate</param> /// <param name="KeybdInputFlags">State of the key. (0=Down, 1 = Up)</param> private void SendKey(HardwareScanCode Keycode, KeybdInputFlags KeybdInputFlags) { INPUT[] InputData = new INPUT[1]; InputData[0].type = InputType.INPUT_KEYBOARD; InputData[0].ki.wScan = Keycode; InputData[0].ki.dwFlags = KeybdInputFlags; InputData[0].ki.time = 0; InputData[0].ki.dwExtraInfo = IntPtr.Zero; if (Win32API.SendInput(1, InputData, Marshal.SizeOf(typeof(INPUT))) == 0) { Logger.WriteLog("SendInput API failed : wScan=" + Keycode.ToString() + ", dwFlags=" + KeybdInputFlags.ToString()); Logger.WriteLog("GetLastError returned : " + Marshal.GetLastWin32Error().ToString()); } }
public static extern void keybd_event(VirtualKeyCode bVk, byte bScan, KeybdInputFlags dwFlags, int dwExtraInfo);