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); } }
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!