Maison >développement back-end >C++ >Comment puis-je gérer les pressions sur les touches dans les applications console C# ?

Comment puis-je gérer les pressions sur les touches dans les applications console C# ?

DDD
DDDoriginal
2025-01-04 12:57:40484parcourir

How Can I Handle Key Presses in C# Console Applications?

Gestion des événements de pression sur les touches dans les applications de console C#

Dans les applications de console C#, la détection des pressions sur les touches nécessite une approche légèrement différente par rapport aux autres applications GUI. applications basées. Pour y parvenir, nous pouvons exploiter l'objet ConsoleKeyInfo.

Solution avec Focus Management

Si votre application console est la fenêtre active et ciblée, vous pouvez utiliser le code suivant :

public class Program
{
    public static void Main()
    {
        ConsoleKeyInfo keyInfo;

        do
        {
            keyInfo = Console.ReadKey();
            Console.WriteLine($"{keyInfo.Key} was pressed");
        } while (keyInfo.Key != ConsoleKey.X);
    }
}

Ce code déclare une variable ConsoleKeyInfo keyInfo et entre dans une boucle. Dans la boucle, Console.ReadKey() lit et affiche la touche enfoncée sur l'écran de la console. La boucle continue jusqu'à ce que la touche « x » soit enfoncée, ce qui fait office de condition de sortie.

Événements de pression de touche à l'échelle du système avec des crochets Windows

Si vous souhaitez Pour rassembler les événements de pression sur les touches à l'échelle du système (c'est-à-dire quelle que soit l'application qui a le focus), vous pouvez utiliser les hooks Windows. Par exemple, vous pouvez utiliser la fonction SetWindowsHookEx pour créer un crochet de clavier. Cependant, cette approche nécessite une programmation de bas niveau plus complexe et dépasse le cadre de cette discussion.

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!

Déclaration:
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