Question

J'écris ( autre , je sais) remappage du clavier en utilisant C # et Visual Studio 2008.

Je suivais ce guide pour apprendre pour happer touches de bas niveau. Cela fonctionne très bien pour des raisons impérieuses par exemple normaux caractères alphabétiques sur mon clavier, mais il me semble avoir besoin d'un peu plus pour faire Verrouillage majuscules agir comme Ctrl .

Si je comprends bien (ce qui peut être incorrect) est que verrouillage des majuscules et Ctrl sont traités complètement différents les uns des autres depuis verrouillage des majuscules est un touche alors basculer Ctrl est juste un "normal" un.

Alors que je suis en train de comprendre ici est de savoir comment faire Caps Lock se comporte comme un Ctrl sur le niveau le plus bas et aussi comment faire la normale < kbd> Ctrl acte clé comme une Caps Lock touche.

Merci

Était-ce utile?

La solution

Maintenir un bool qui représente l'état attendu de verrouillage des majuscules. Lorsque le verrouillage des majuscules clé est frappé, définissez les systèmes de Caps Lock valeur retour à la valeur de la bool. Lorsque Ctrl est frappé, basculer l'état prévu des bouchons de verrouillage et réglez bouchon valeur de verrouillage du système à la valeur du bool.

utiliser les éléments suivants pour définir l'état initial attendu:

[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true, CallingConvention=CallingConvention.Winapi)] 
public static extern short GetKeyState(int keyCode); 
bool CapsLock = (((ushort)GetKeyState(0x14)) & 0xffff) != 0;

Ajouter une logique spéciale dans HookCallback (à partir du lien fourni) lorsque Ctrl et verrouillage des majuscules sont touchés. Le verrouillage des majuscules est quand lParam est &H14. Ctrl est quand lParam est &H11.

Pour obtenir / set Caps Lock valeur de système :

http: //social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/fb8308e5-7620-43cc-8ad8-be67d94708fa/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top