You can use WinAPI instead of SendKeys:
[DllImport("user32.dll", SetLastError = true)] static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo); public static void PressKey(Keys key, bool up) { const int KEYEVENTF_EXTENDEDKEY = 0x1; const int KEYEVENTF_KEYUP = 0x2; if (up) { keybd_event((byte) key, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr) 0); } else { keybd_event((byte) key, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr) 0); } } void TestProc() { PressKey(Keys.ControlKey, false); PressKey(Keys.P, false); PressKey(Keys.P, true); PressKey(Keys.ControlKey, true); }
Alex butenko
source share