Cómo capturar las pulsaciones de teclas CTRL + CTRL en mi aplicación Win32?
-
19-09-2019 - |
Pregunta
¿Cómo puedo capturar el usuario pulsa Ctrl dos veces ( Ctrl + Ctrl ) a nivel mundial. Quiero ser capaz de tener mi ventana de la aplicación oculta y luego hacerla visible cuando el usuario lo solicite con el Ctrl Ctrl pulsaciones de teclas similares a la búsqueda rápida de Google caja. El usuario puede tener el foco en una ventana diferente. He mirado en RegisterHotKey, pero que parece ser para MODIFIERS + character key
si no me equivoco.
Solución
Para crear una tecla de acceso directo tal, hacer esto:
ATOM hotkey = GlobalAddAtom("Your hotkey atom name");
if(hotkey) RegisterHotKey(hwnd, hotkey, MOD_CONTROL, VK_CONTROL);
else { ...error... }
Y luego manejar el mensaje WM_HOTKEY
:
case WM_HOTKEY:
if(wParam == hotkey)
{
// CTRL pressed!!!
}
break;
Creo que se te ocurrirá a ti mismo que necesita almacenar si la tecla Ctrl se ha pulsado antes. Por ejemplo, si se pulsa una vez en los últimos 500 ms, y el usuario presiona de nuevo, usted tiene un Ctrl + Ctrl prensa.