- Windows環境でノンブロッキングでキーを取得する方法をAIに聞いたら
- GetNumberOfConsoleInputEvents
- でイベント数を確認
- ReadConsoleInput
- で読み取る
- ってのが提示されたのですが、実行するとキー入力待ちになる
- どうにかならないかとMicrosoftの技術ドキュメントを見てみる事に
- https://learn.microsoft.com/windows/console/getnumberofconsoleinputevents
- https://learn.microsoft.com/windows/console/readconsoleinput
- それによると
- >未読レコードの数に影響を与えずにコンソール入力バッファーから入力レコードを読み取る場合は、PeekConsoleInput 関数を使用します
- と書いてある
- なので
- https://learn.microsoft.com/windows/console/peekconsoleinput
- を見て
- PeekConsoleInput
- でイベントがあるか確認
- ReadConsoleInput
- でイベントを消費するようにする事でノンブロッキングでキーを取得できるようになった
- そのソースは以下のリンクのMde
- Linux & Window対応
- https://drive.google.com/drive/folders/11xPrz_scDlw4_QQjzu9YnM8sBQrF7d0v