KONOTI

この世界で得た知識・情報まとめ

【C++】キーボード入力判定でGetAsyncKeyState関数を使う

  • 作成日:2024/10/20

Enterが押されたとき、Tabが押されたとき、などキーボードで特定のキーが押下されたことを検知する方法です。

GetAsyncKeyState関数とは

GetAsyncKeyStateは特定のキーが押下されたか調べる関数です。winuser.hをインクルードして使います。

リファレンス

    SHORT GetAsyncKeyState(int vKey);
                        
【仕様】

キーが押されているか検知する関数。 (前回の関数呼び出し後にキーが押されても検知する)

【引数】
  • vKey:仮想キー コード

引数には決められた仮想キーコードを渡します。

仮想キーコードとは

仮想キーコードとは、各キーボードに割り当てられた16進数の数値です。例えば、Enterキーは「0x0D」という値が割り振られています。 コンピュータがキーを識別するための対応表みたいなイメージです。 仮想キー一覧は以下にあります。

使い方

サンプルを用いて使い方を紹介します。

以下のコードは1秒ごとに待機メッセージを出力し続けて、Enterキーが押下されたら処理を終えるコードです。

test.cpp

    #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を押下すると以下のようになります。

実行結果

待機中...
待機中...
待機中...
キー入力されました

この記事のシェアはこちらから

当サイトについて

当サイト(KONOTI)は、日常生活において運営者が得た情報をご紹介するサイトです。 ジャンルに多少の偏りはありますが、基本的には様々な情報を取り扱っていく予定です。

Contact

当サイトへのご連絡は以下よりお願いします。

PAGE TOP ▲

© Copyright 2024 KONOTI