Получение ввода, если окно не активно (Windows) - PullRequest
4 голосов
/ 23 июня 2010

Короткая версия:

Как я могу получать входные сообщения в Windows с C ++ / C, когда окно не активно?

Справочная информация:

В настоящее время я работаю над системой ввода, которая не должна зависеть ни от какого окна, поэтому она может, например, использоваться также и в консоли.

Моя идея состоит в том, чтобы создать невидимое окно, принимающее только сообщения, что возможно при использовании HWND_MESSAGE в качестве hWndParent. Он только получает входные сообщения, когда он активен, и я не хочу этого. Он должен всегда получать входные данные (если приложение не запрашивает его, например, из-за потери фокуса).

Я знаю, что это как-то возможно, многие приложения поддерживают глобальные ярлыки (например, медиаплееры (управление воспроизведением) или программы мгновенных сообщений (открытие списка контактов)), я просто не знаю, как Знаете ли вы?

Ответы [ 2 ]

2 голосов
/ 23 июня 2010

Опции:

  • RegisterHotKey , если вам нужно зарегистрировать только одну или несколько горячих клавиш
  • SetWindowsHookEx с WH_KEYBOARD / WH_KEYBOARD_LL.Используйте, когда вам нужно отфильтровать многие или все события клавиатуры.Однако код ловушки должен быть реализован в DLL (которая загружается в другие процессы).Вам нужны отдельные 32-битные и 64-битные версии DLL
1 голос
/ 23 июня 2010

Вам необходимо настроить хук ввода клавиатуры с Windows. Здесь - пример того, как это сделать; это еще проще сделать в C ++

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...