Heim > Backend-Entwicklung > C++ > Wie kann ich mit Tastendrücken in C#-Konsolenanwendungen umgehen?

Wie kann ich mit Tastendrücken in C#-Konsolenanwendungen umgehen?

DDD
Freigeben: 2025-01-04 12:57:40
Original
481 Leute haben es durchsucht

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

Verarbeiten von Tastendruckereignissen in C#-Konsolenanwendungen

In C#-Konsolenanwendungen erfordert die Erkennung von Tastendrücken einen etwas anderen Ansatz im Vergleich zu anderen GUI- basierte Anwendungen. Um dies zu erreichen, können wir das ConsoleKeyInfo-Objekt nutzen.

Lösung mit Fokusverwaltung

Wenn Ihre Konsolenanwendung das aktive und fokussierte Fenster ist, können Sie den folgenden Code verwenden :

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

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

Dieser Code deklariert eine ConsoleKeyInfo-Variable keyInfo und tritt in eine Schleife ein. In der Schleife liest Console.ReadKey() die gedrückte Taste und zeigt sie auf dem Konsolenbildschirm an. Die Schleife wird fortgesetzt, bis die Taste „x“ gedrückt wird, die als Beendigungsbedingung fungiert.

Systemweite Tastendruckereignisse mit Windows-Hooks

Wenn Sie möchten Um systemweite Tastendruckereignisse zu sammeln (d. h. unabhängig davon, welche Anwendung den Fokus hat), können Sie Windows-Hooks verwenden. Sie können beispielsweise die SetWindowsHookEx-Funktion verwenden, um einen Tastatur-Hook zu erstellen. Dieser Ansatz erfordert jedoch eine komplexere Low-Level-Programmierung und geht über den Rahmen dieser Diskussion hinaus.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Tastendrücken in C#-Konsolenanwendungen umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage