C # глобальная горячая клавиша (без обычно используемого глобального хука) - PullRequest
0 голосов
/ 12 августа 2010

Я создаю программу для личного использования, которая должна реагировать на некоторые горячие клавиши. Например, когда я нажимаю Ctrl + Win + Z, он должен выполнить определенное действие. В настоящее время я могу использовать GetKeyState () из user32.dll для обнаружения нажатий клавиш, однако я не могу остановить их передачу активному приложению. В случае ctrl + win + z, действие, которое я хочу выполнить, происходит, но если я использую, например, explorer, explorer также будет читать это как «отмену».

Очевидным решением было бы использование «SetWindowsHookEx ()» (также из user32.dll), однако каждый раз, когда я пробую решение, включающее его (что-нибудь похожее на пример кода этого сайта), я получаю Массовое замедление в первый раз, когда я использую горячую клавишу. Это не приемлемо.

Я надеюсь, что кто-то может помочь. Я могу предоставить больше информации, если требуется.

1 Ответ

2 голосов
/ 13 августа 2010

Вы пробовали функцию RegisterHotKey ? Это определенно проще в использовании, чем хук Windows.

...