RegisterHotKey без модификатора в С++ ⇐ C++
-
Anonymous
RegisterHotKey без модификатора в С++
Этот фрагмент кода регистрирует две глобальные горячие клавиши в Windows для SHIFT+F5 и SHIFT+F6. Он работает нормально во всех случаях, включая случай, когда в фокусе находится совершенно другое приложение, например игра.
enum{ KEY_F5 = 1, KEY_F6 = 2 }; RegisterHotKey(0, KEY_F5, MOD_SHIFT, VK_F5); RegisterHotKey(0, KEY_F6, MOD_SHIFT, VK_F6); MSG-сообщение; в то время как (GetMessage(&msg, 0, 0, 0)) { PeekMessage(&msg, NULL, 0, 0, 0); переключатель (msg.message){ случай WM_HOTKEY: если (msg.wParam == KEY_F5){ // код } иначе, если (msg.wParam == KEY_F6){ // код } } } Но если я заменю
RegisterHotKey(0, KEY_F5, MOD_SHIFT, VK_F5); RegisterHotKey(0, KEY_F6, MOD_SHIFT, VK_F6); по
RegisterHotKey(0, KEY_F5, 0, VK_F5); РегистрацияHotKey(0, KEY_F6, 0, VK_F6); поскольку моя цель состоит в том, чтобы две клавиши имели F5 и F6 в качестве горячих клавиш без необходимости постоянно нажимать SHIFT, это работает только в том случае, если фокус находится в моей программе, а не в другой. Как я могу добиться того, чтобы было только F? как глобальная горячая клавиша, как, например, в TS3. Это должно работать, даже если приложение не имеет фокуса.
Этот фрагмент кода регистрирует две глобальные горячие клавиши в Windows для SHIFT+F5 и SHIFT+F6. Он работает нормально во всех случаях, включая случай, когда в фокусе находится совершенно другое приложение, например игра.
enum{ KEY_F5 = 1, KEY_F6 = 2 }; RegisterHotKey(0, KEY_F5, MOD_SHIFT, VK_F5); RegisterHotKey(0, KEY_F6, MOD_SHIFT, VK_F6); MSG-сообщение; в то время как (GetMessage(&msg, 0, 0, 0)) { PeekMessage(&msg, NULL, 0, 0, 0); переключатель (msg.message){ случай WM_HOTKEY: если (msg.wParam == KEY_F5){ // код } иначе, если (msg.wParam == KEY_F6){ // код } } } Но если я заменю
RegisterHotKey(0, KEY_F5, MOD_SHIFT, VK_F5); RegisterHotKey(0, KEY_F6, MOD_SHIFT, VK_F6); по
RegisterHotKey(0, KEY_F5, 0, VK_F5); РегистрацияHotKey(0, KEY_F6, 0, VK_F6); поскольку моя цель состоит в том, чтобы две клавиши имели F5 и F6 в качестве горячих клавиш без необходимости постоянно нажимать SHIFT, это работает только в том случае, если фокус находится в моей программе, а не в другой. Как я могу добиться того, чтобы было только F? как глобальная горячая клавиша, как, например, в TS3. Это должно работать, даже если приложение не имеет фокуса.
Мобильная версия