ホームページ >バックエンド開発 >C++ >C# コンソール アプリケーションでキーの押下を処理するにはどうすればよいですか?

C# コンソール アプリケーションでキーの押下を処理するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-04 12:57:40484ブラウズ

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

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。