2010-02-03 6 views
1

Je souhaite exécuter un crochet de verrouillage de bas niveau sur un thread séparé en C# pour détecter certains raccourcis clavier. Comment ferais-je cela?Keyhook de bas niveau

+0

Qu'est-ce qu'un 'keyhook'? – Oded

+1

Il y a beaucoup de questions et réponses sur ce sujet ici sur SO. Un exemple très complet: http://stackoverflow.com/questions/1639331/using-global-keyboard-hook-whkeyboardll-in-wpf-c Suggestion de recherche sur "GetAsyncKeyState" ainsi que "hook global", "hook de clavier" , "" crochet de clavier de niveau inférieur ", etc. – BillW

Répondre

3

Si vous avez besoin de ce crochet de clavier uniquement pour détecter les touches de raccourci, n'utilisez pas de crochet. Windows prend en charge les touches d'accès rapide avec la fonction API RegisterHotKey(). Vérifiez mon exemple de code dans this thread pour voir comment l'utiliser. Il y a un échantillon C# plus bas sur la page.

1

Vous pouvez utiliser DirectX. Ajouter une référence à Microsoft.DirectX.DirectInput (une fois que vous avez installé sur votre machine directX Here is the SDK..)

Créer une instance de la classe de l'appareil:

keyboard = new Microsoft.DirectX.DirectInput.Device(SystemGuid.Keyboard); 

Et vous pouvez maintenant écouter la clavier.

Questions connexes