Я предполагаю, что это вопрос Winforms, это не проблема в WPF с классом Keyboard.Отслеживание событий KeyDown и KeyUp ненадежно, вы можете пропустить уведомление, когда ваше приложение получает или теряет фокус с нажатой клавишей.Вам нужна помощь в пинвоке:
public static class NativeMethods {
public static bool IsKeyDown(Keys key) {
return GetKeyState(key) < 0;
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern short GetKeyState(Keys key);
}