2025年9月20日

C言語 ノンブロッキングでキーを取得できるようAIに聞きながらプログラムを書いてみた

  • 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
  • でイベントを消費するようにする事でノンブロッキングでキーを取得できるようになった

0 件のコメント:

コメントを投稿

KB16を購入したので設定に関するメモを書いてみた (JIS配列環境での使用)

VIAでKB16のキー割当を設定してみたけど、KB16はUS配列キーボードなのでJIS配列で出力すると文字が違ったりするのですよね 例えば()を入力したら)~と出力されたり なのでどの記号を出力するには何のキーを登録すると良いかを手動で試しながらリスト化してみた   h...