【C++】キーボード入力判定でGetAsyncKeyState関数を使う
- 作成日:2024/10/20
Enterが押されたとき、Tabが押されたとき、などキーボードで特定のキーが押下されたことを検知する方法です。
GetAsyncKeyState関数とは
GetAsyncKeyStateは特定のキーが押下されたか調べる関数です。winuser.hをインクルードして使います。
SHORT GetAsyncKeyState(int vKey);
キーが押されているか検知する関数。 (前回の関数呼び出し後にキーが押されても検知する)
- vKey:仮想キー コード
引数には決められた仮想キーコードを渡します。
仮想キーコードとは
仮想キーコードとは、各キーボードに割り当てられた16進数の数値です。例えば、Enterキーは「0x0D」という値が割り振られています。 コンピュータがキーを識別するための対応表みたいなイメージです。 仮想キー一覧は以下にあります。
使い方
サンプルを用いて使い方を紹介します。
以下のコードは1秒ごとに待機メッセージを出力し続けて、Enterキーが押下されたら処理を終えるコードです。
#include <iostream>
#include <windows.h>
#include <unistd.h>
using namespace std;
int main()
{
while (1)
{
//キーが押下された場合
if (GetAsyncKeyState(VK_RETURN))
{
cout << "キー入力されました" << endl;
break;
}
cout << "待機中..." << endl;
sleep(1);
}
return 0;
}
数秒後にEnterを押下すると以下のようになります。
待機中...
待機中...
待機中...
キー入力されました