Come catturare la pressione dei tasti CTRL + CTRL nella mia applicazione Win32?
-
19-09-2019 - |
Domanda
Come faccio a catturare l'utente preme Ctrl per due volte ( Ctrl + Ctrl ) a livello globale. Voglio essere in grado di avere la mia finestra nascosta e quindi renderlo visibile quando l'utente richiama con il Ctrl Ctrl pressioni dei tasti simili a Ricerca Google Quick Box. L'utente può avere focus su una finestra diversa. Ho guardato RegisterHotKey, ma che sembra essere per MODIFIERS + character key
se non mi sbaglio.
Soluzione
Per creare un tale tasto di scelta rapida, fare questo:
ATOM hotkey = GlobalAddAtom("Your hotkey atom name");
if(hotkey) RegisterHotKey(hwnd, hotkey, MOD_CONTROL, VK_CONTROL);
else { ...error... }
E poi gestire il messaggio WM_HOTKEY
:
case WM_HOTKEY:
if(wParam == hotkey)
{
// CTRL pressed!!!
}
break;
Credo che potrai capire te stesso che è necessario memorizzare se il CTRL tasto è stato premuto prima. Ad esempio, se è stato premuto una volta negli ultimi 500 ms, e l'utente preme di nuovo, si dispone di un CTRL + CTRL stampa.