C# コンソール アプリケーションでのキー押下イベントの処理
C# コンソール アプリケーションでキー押下を検出するには、他の GUI と比較してわずかに異なるアプローチが必要です。ベースのアプリケーション。これを実現するには、ConsoleKeyInfo オブジェクトを利用できます。
フォーカス管理によるソリューション
コンソール アプリケーションがアクティブでフォーカスされたウィンドウである場合は、次のコードを使用できます。 :
public class Program { public static void Main() { ConsoleKeyInfo keyInfo; do { keyInfo = Console.ReadKey(); Console.WriteLine($"{keyInfo.Key} was pressed"); } while (keyInfo.Key != ConsoleKey.X); } }
このコードは、ConsoleKeyInfo 変数 keyInfo を宣言し、ループに入ります。ループ内では、Console.ReadKey() が押されたキーを読み取り、コンソール画面に表示します。ループは、「x」キーが押されるまで続き、これが終了条件として機能します。
Windows フックによるシステム全体のキー押下イベント
システム全体のキー押下イベントを収集するには (つまり、どのアプリケーションにフォーカスがあるかに関係なく)、Windows フックを使用できます。たとえば、SetWindowsHookEx 関数を使用してキーボード フックを作成できます。ただし、このアプローチにはより複雑な低レベルのプログラミングが必要であり、この説明の範囲を超えています。
以上がC# コンソール アプリケーションでキーの押下を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。