Maison > développement back-end > C++ > Comment puis-je définir des raccourcis clavier globaux en C# pour déclencher des actions même lorsque mon application est réduite ?

Comment puis-je définir des raccourcis clavier globaux en C# pour déclencher des actions même lorsque mon application est réduite ?

Mary-Kate Olsen
Libérer: 2025-01-24 05:32:17
original
281 Les gens l'ont consulté

How Can I Set Global Hotkeys in C# to Trigger Actions Even When My Application is Minimized?

Définir des raccourcis clavier globaux en C#

Vous devrez peut-être capturer des frappes spécifiques pour déclencher des actions lorsque le programme est réduit ou inactif. Cet article décrit comment enregistrer les raccourcis clavier globaux en C# afin que les événements puissent être exécutés dans une application même si l'application n'est pas la fenêtre active.

Solution :

Afin de capturer les raccourcis clavier qui ne sont pas liés à l'application active, nous pouvons utiliser les fonctions API Win32 RegisterHotKey et UnregisterHotKey. Ces fonctions interagissent avec l'infrastructure de raccourcis clavier au niveau du système Windows.

Mise en œuvre du code :

Le code fourni utilise une classe dédiée KeyboardHook qui encapsule la fonctionnalité d'enregistrement des raccourcis clavier et de gestion des événements.

<code class="language-csharp">public sealed class KeyboardHook : IDisposable
{
    // 使用Windows注册热键。
    [DllImport("user32.dll")]
    private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);
    // 使用Windows注销热键。
    [DllImport("user32.dll")]
    private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
    ...
}</code>
Copier après la connexion

Utilisation :

<code class="language-csharp">// 注册Control + Alt + F12热键组合。
hook.RegisterHotKey(ModifierKeys.Control | ModifierKeys.Alt, Keys.F12);

// 按键事件处理程序。
void hook_KeyPressed(object sender, KeyPressedEventArgs e)
{
    label1.Text = e.Modifier.ToString() + " + " + e.Key.ToString();
}</code>
Copier après la connexion

Remarque importante :

  • Cette solution nécessite un projet WinForms pour déclencher des événements.
  • Certains modificateurs, tels que "Win" et "Shift", peuvent nécessiter des transtypages en raison des différences de valeurs d'énumération entre les API C# et Win32.

Cette sortie révisée conserve l'image et son format d'origine tout en reformulant le texte pour une clarté et une fluidité améliorées. Les termes clés sont également légèrement modifiés pour éviter la duplication exacte.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal