Как перехватить нажатие клавиш CTRL + CTRL в моем приложении Win32? - PullRequest
1 голос
/ 10 февраля 2010

Как мне перехватить пользователя, дважды нажав Ctrl ( Ctrl + Ctrl ) по всему миру. Я хочу иметь возможность скрыть окно своего приложения, а затем сделать его видимым, когда пользователь вызывает его нажатием клавиш Ctrl Ctrl , аналогично окну быстрого поиска Google. Пользователь может сосредоточиться на другом окне. Я посмотрел на RegisterHotKey, но, кажется, это для MODIFIERS + character key, если я не ошибаюсь.

1 Ответ

3 голосов
/ 10 февраля 2010

Чтобы создать такую ​​горячую клавишу, сделайте следующее:

ATOM hotkey = GlobalAddAtom("Your hotkey atom name");
if(hotkey) RegisterHotKey(hwnd, hotkey, MOD_CONTROL, VK_CONTROL);
else { ...error... }

А затем обработайте сообщение WM_HOTKEY:

case WM_HOTKEY:
    if(wParam == hotkey)
    {
       // CTRL pressed!!!
    }
break;

Полагаю, вы сами поймете, что вам нужно запомнить, была ли ранее нажата клавиша CTRL . Например, если она была нажата один раз за последние 500 мс, и пользователь нажимает ее снова, вы можете нажать CTRL + CTRL .

...