Maison >développement back-end >C++ >Comment capturer des raccourcis clavier globaux en C# ?
Capture des raccourcis clavier globaux en C#
En C#, la capture des frappes même lorsque le programme n'est pas actif nécessite une manipulation particulière. Cet article vous guidera tout au long du processus de configuration des raccourcis clavier globaux afin que votre programme réponde aux combinaisons de touches même lorsque d'autres fenêtres sont actives.
Utiliser l'appel de la plateforme
Afin d'interagir avec le système d'exploitation Windows, C# utilise des appels de plateforme (DllImport). Les fonctions DLL suivantes sont essentielles pour définir les raccourcis clavier :
Créer une classe de crochetage de clavier
Pour gérer les raccourcis clavier globaux, créez une classe KeyboardHook qui hérite de IDisposable :
<code class="language-csharp">public sealed class KeyboardHook : IDisposable { // ... }</code>
Dans cette classe, vous devez créer une classe Window imbriquée pour recevoir des messages de raccourci clavier :
<code class="language-csharp">private class Window : NativeWindow, IDisposable { // ... }</code>
Enregistrer les raccourcis clavier
Pour enregistrer un raccourci clavier, utilisez la méthode RegisterHotKey dans la classe KeyboardHook :
<code class="language-csharp">public void RegisterHotKey(ModifierKeys modifier, Keys key) { // ... }</code>
Cette méthode incrémentera un compteur interne (_currentId), puis enregistrera le raccourci clavier auprès de Windows en utilisant le modificateur et la touche spécifiés.
Répond aux pressions sur les touches de raccourci
Lorsqu'un raccourci clavier est enfoncé, le gestionnaire d'événements KeyPressed est déclenché. Vous pouvez vous abonner à cet événement dans votre application principale et effectuer l'action souhaitée lorsque le raccourci clavier est déclenché.
Exemple d'utilisation
Dans l'exemple fourni, un formulaire avec un label est créé pour afficher les touches enfoncées :
<code class="language-csharp">public partial class Form1 : Form { // ... }</code>
Dans le constructeur du formulaire, créez une instance KeyboardHook et enregistrez les combinaisons de touches de raccourci pour Control, Alt et F12 :
<code class="language-csharp">hook.RegisterHotKey(ModifierKeys.Control | ModifierKeys.Alt, Keys.F12);</code>
Lorsqu'un raccourci clavier est enfoncé, le gestionnaire d'événements hook_KeyPressed est appelé et l'étiquette est mise à jour avec le modificateur et la touche enfoncées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!