Enregistrez les raccourcis clavier globaux pour détecter CTRL SHIFT (lettre) dans WPF et .NET 3.5
Lors du développement d'applications de bureau dans WPF avec .NET 3.5, la liaison à des combinaisons de touches spécifiques ou même à la touche Windows est une exigence courante. Explorons comment implémenter cette fonctionnalité :
Enregistrer les raccourcis clavier globaux
Pour enregistrer un raccourci clavier global qui déclenche une action spécifique lorsqu'il est enfoncé, vous pouvez utiliser les fonctions RegisterHotKey et UnregisterHotKey dans la bibliothèque user32.dll. Ces fonctions prennent des arguments qui définissent le modificateur de raccourci clavier (par exemple, la touche Contrôle, Maj ou Windows) et le code de touche virtuelle qui représente la lettre souhaitée.
Lié à la clé
Dans votre application WPF, créez une classe HotKey pour gérer l'enregistrement des raccourcis clavier et la gestion des événements. Cette classe peut être initialisée avec la combinaison de touches souhaitée et l'action à effectuer lorsque le raccourci clavier est déclenché. Appelez la méthode Register() pour enregistrer les raccourcis clavier à l’échelle du système.
Dissocier les clés
Lorsque vous n'avez plus besoin d'un raccourci clavier spécifique, vous pouvez appeler la méthode Unregister() pour supprimer son enregistrement. Cela garantit que le raccourci clavier ne répond plus à la saisie.
Exemple de code
Le code fourni démontre une implémentation complète de la classe HotKey, qui peut être utilisée pour se lier à n'importe quelle combinaison de touches, y compris CTRL SHIFT (lettre). Il montre également les mécanismes d'inscription et de gestion des événements :
<code class="language-c#">public class HotKey : IDisposable { public Key Key { get; private set; } public KeyModifier KeyModifiers { get; private set; } public Action<HotKey> Action { get; private set; } public int Id { get; set; } // (代码继续...) } private static void ComponentDispatcherThreadFilterMessage(ref MSG msg, ref bool handled) { // (代码继续...) }</code>
<code class="language-c#">// 使用示例: _hotKey = new HotKey(Key.F9, KeyModifier.Shift | KeyModifier.Win, OnHotKeyHandler); private void OnHotKeyHandler(HotKey hotKey) { // 处理热键事件 }</code>
Cet extrait de code crée un objet raccourci clavier avec KeyModifier Shift et Win et la touche F9. Lorsque la méthode OnHotKeyHandler est exécutée, elle indique que cette combinaison de touches de raccourci a été enfoncée.
Contient la clé Windows
Pour enregistrer un raccourci clavier qui inclut la touche Windows, vous pouvez utiliser l'indicateur KeyModifier.Win dans le paramètre KeyModifiers lors de l'appel de la méthode Register. Cela vous permet de capturer des combinaisons de raccourcis clavier avec ce modificateur, telles que Win L pour verrouiller l'ordinateur.
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!