RegisterHotKey без модификатора в С++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 RegisterHotKey без модификатора в С++

Сообщение Anonymous »


Этот фрагмент кода регистрирует две глобальные горячие клавиши в 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. Это должно работать, даже если приложение не имеет фокуса.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»