2010-04-04 4 views
1

J'essaie d'obtenir le raccourci global défini par l'utilisateur pour mon application. Voici mon code d'application,Personnalisé Hotkey global

user.rc

CONTROL   "", IDC_MHOTKEY, HOTKEY_CLASS, WS_TABSTOP, 91, 86, 68, 14 

function.cpp

WORD wHotKey = SendDlgItemMessage(hwnd, IDC_MHOTKEY, HKM_GETHOTKEY, 0, 0); 
    GLOBAL_HOTKEY= wHotKey; 
    RegisterHotKey (NULL, TURN_OFF_HOTKEY, HIBYTE(LOWORD(wHotKey)) , wHotKey); 

main.cpp

if (messages.message == WM_HOTKEY && (HIWORD (messages.lParam) == GLOBAL_HOTKEY)) 
         alert("Coming only for Single Key"); 

Ce code fonctionne bien, Seulement si l'utilisateur sélectionne une seule touche et ne fonctionne pas lorsqu'il sélectionne plusieurs touches combinées comme CTRL + F8.

Répondre

1

Vous devez isoler la clé virtuelle de la valeur wHotKey:

RegisterHotKey (NULL, 
    TURN_OFF_HOTKEY, 
    HIBYTE(LOWORD(wHotKey)),   // Modifiers 
    LOBYTE(LOWORD(wHotKey))   // Virtual key 
); 
+0

C'est cool;) Enfin résolu la question! Merci Nobugz :) – ukanth