Полноэкранное приложение предотвращает горячие клавиши - PullRequest
2 голосов
/ 15 ноября 2010

Я разработал приложение WPF, которое регистрирует горячие клавиши с помощью com-взаимодействия и обрабатывает их с помощью WndProc.

Горячие клавиши работают отлично, даже когда приложение не имеет фокуса. Однако они не работают, когда определенные полноэкранные приложения имеют фокус (игры). Есть ли способ для меня это исправить?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 15 ноября 2010

Отключение горячих клавиш - это дизайн, и, насколько я знаю, вы мало что можете с этим поделать.

Полноэкранные приложения DirectX (обычно игры) будут вызывать IDirectDraw :: SetCooperativeLevel с флагами DDSCL_FULLSCREEN и DDSCL_EXCLUSIVE, что приводит, среди прочего, к отключению зарегистрированных горячих клавиш.

1 голос
/ 15 ноября 2010

Несмотря на то, что зарегистрированные горячие клавиши отключены, вы можете обрабатывать их с помощью низкоуровневой клавиатуры. Их может быть довольно сложно реализовать правильно, но вы можете взглянуть на источник AutoHotkey , чтобы увидеть, как он обрабатывает горячие клавиши в низкоуровневой клавиатуре.

Этот является хорошим руководством по настройке низкоуровневой клавиатуры в C #.

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