GetKeyState 関数 (winuser.h)

指定した仮想キーの状態を取得します。 状態は、キーが押されるたびに、キーが上、下、または切り替え (オン、オフ) かどうかを指定します。

構文

SHORT GetKeyState(
  [in] int nVirtKey
);

パラメーター

[in] nVirtKey

型: int

仮想キー。 目的の仮想キーが文字または数字 (A から Z、a から z、または 0 から 9) の場合、 nVirtKey はその文字の ASCII 値に設定する必要があります。 その他のキーの場合は、仮想キー コードである必要があります。

英語以外のキーボード レイアウトを使用する場合、ほとんどの文字キーを指定するには、ASCII A ~ Z および 0 ~ 9 の範囲の値を持つ仮想キーが使用されます。 たとえば、ドイツ語のキーボード レイアウトの場合、値 ASCII O (0x4F) の仮想キーは "o" キーを参照し、VK_OEM_1は "o with umlaut" キーを参照します。

戻り値

種類: SHORT

戻り値は、指定された仮想キーの状態を次のように指定します。

  • 上位ビットが 1 の場合、キーはダウンします。それ以外の場合は、稼働中です。
  • 下位ビットが 1 の場合、キーは切り替えられます。 CAPS LOCK キーなどのキーは、オンにすると切り替わります。 下位ビットが 0 の場合、キーはオフになり、集計されます。 キーが切り替えられると、キーボードのトグル キーのインジケーター ライト (ある場合) がオンになり、キーが切り替えられるとオフになります。

解説

スレッドがメッセージ キューからキー メッセージを読み取る際に、この関数から返されるキーの状態が変わります。 状態には、ハードウェアに関連付けられている割り込みレベルの状態は反映されません。 GetAsyncKeyState 関数を使用して、その情報を取得します。

アプリケーションは、キーボード入力メッセージに応答して GetKeyState を呼び出します。 この関数は、入力メッセージが生成されたときのキーの状態を取得します。

すべての仮想キーの状態情報を取得するには、 GetKeyboardState 関数を使用します。

アプリケーションでは、仮想 キー コード 定数 VK_SHIFTVK_CONTROLVK_MENUnVirtKey パラメーターの値として使用できます。 これにより、左右を区別せずに、Shift キー、Ctrl キー、または Alt キーの状態が表示されます。 アプリケーションでは、 nVirtKey の値として次の仮想キー コード定数を使用して、これらのキーの左と右のインスタンスを区別することもできます。

VK_LSHIFTVK_RSHIFT VK_LCONTROLVK_RCONTROLVK_LMENU VK_RMENUこれらの左と右の区別定数は、GetKeyboardState、SetKeyboardStateGetAsyncKeyStateGetKeyStateおよび MapVirtualKey 関数を介してのみアプリケーションで使用できます。

例については、「 キーボード入力の表示」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll

関連項目