Привет, я пытаюсь сделать простую программу, которая читает ключи с клавиатуры, даже если мое приложение работает в фоновом режиме.
ситуация
Я хочу сделать таймер, чтобы помочь мне в игре. У меня уже есть программа с таймером, проблема в том, что я не могу запустить таймер без переключения игрового окна в окно приложения. Поэтому я настроил игровую клавиатуру на выпуск ключей F11, F12. Теперь в игре эти клавиши ничего не делают.
проблема
Я построил окна, содержащие слушателя для события keydown и условного для F11. Но когда я запускаю другое окно (например, игровое окно), мое приложение больше не слышит клавиатуру, потому что это в фоновом режиме.
Вопрос
Как я могу создать приложение, которое слышит клавиатуру, даже если это не активное окно?
Вам нужно установить глобальный крючок с низким уровнем клавиатуры, используя вызов API SetWindowHookEx. Использование крюка WH_KEYBOARD_LL позволит вашему приложению постоянно перехватывать события клавиатуры, даже если ваше приложение неактивно.
Этот пост в MSDN показывает пример того, как достичь чего-то близкого к тому, что вы хотите от С#.