Глобальный выпуск горячих клавиш (keyup)? (WIN32 API)

Есть ли способ заметить отпускание кнопки быстрого доступа, зарегистрированной с RegisterHotKey?

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


person Crackoder    schedule 09.01.2012    source источник


Ответы (2)


Для этого конкретного действия нет специального уведомления. Вам нужно будет написать DLL, которая реализует глобальный перехват клавиатуры через SetWindowsHookEx(), тогда вы будете получать отдельные уведомления о нажатии клавиш вверх / вниз и можете сопоставлять их с вашими WM_HOTKEY уведомлениями по мере необходимости.

person Remy Lebeau    schedule 09.01.2012

Используйте RegisterHotkey, чтобы определить, что клавиша выходит из строя, затем используйте опрос с GetAsyncKeyState, пока клавиша не перестанет быть нажатой. Это позволяет избежать сложности SetWindowsHookEx, и опрос обычно приемлем, поскольку он выполняется только при удерживании горячей клавиши.

person NateS    schedule 18.12.2016
comment
ИМХО лучшее решение, если у вас есть только одна или несколько горячих клавиш - person Njol; 07.07.2017