2011-03-16 4 views
0

Quelle est la meilleure façon d'intercepter le bouton de verrouillage des majuscules sous Windows pour créer un programme comme Launchy?Meilleure façon d'intercepter la pression sur le verrouillage des majuscules

Actuellement, je définis un hook de bas niveau avec SetWindowsHookEx, mais c'est un peu trop bas niveau pour moi, car je ne veux pas intercepter d'autres programmes qui tentent d'être actifs à un niveau bas. Je suis à la recherche du plus haut niveau d'interception possible qui peut encore empêcher d'activer Caps Lock lui-même ... de meilleures suggestions?

+0

Est-ce que inline asm ok? : P – BlackBear

+0

lol, quoi? Comment cela pourrait-il aider/travailler? – Mehrdad

+0

en fait c'est assez simple à faire, il suffit d'appeler une interruption et de masquer le bit dont vous avez besoin – BlackBear

Répondre

0

Apparemment, la meilleure façon est d'utiliser un crochet bas niveau, puisque RegisterHotkey ne le fait pas intercepter la clé.

0

Vous pouvez utiliser RegisterHotKey:

RegisterHotKey(hWnd, 0, 0, VK_CAPITAL); 

Votre fenêtre recevra un message WM_HOTKEY chaque fois que cette touche est enfoncée.

+1

Cela n'empêche pas Caps Lock de basculer son état - c'est trop haut niveau :( – Mehrdad

+0

@Mehrdad: C'est vrai, mais vous ne pouvez pas "empêcher" cela sans utiliser un crochet.Vous pouvez cependant traiter le raccourci et réinitialiser l'état en utilisant [' SetKeyboardState'] (http://msdn.microsoft.com/en-us/library/ms646314%28VS.85%29.aspx), mais en utilisant un crochet sera plus efficace – casablanca

+0

Ah, donc il n'y a pas d'autre moyen? – Mehrdad

Questions connexes