keybd_event関数 (winuser.h)

キーストロークを合成します。 システムは、このような合成キーストロークを使用して、WM_KEYUP または WM_KEYDOWN メッセージを生成できます。 キーボード ドライバーの割り込みハンドラーは、keybd_event 関数を呼び出します。

メモ この関数は置き換えられます。 代わりに SendInput を使ってください。
 

構文

void keybd_event(
  [in] BYTE      bVk,
  [in] BYTE      bScan,
  [in] DWORD     dwFlags,
  [in] ULONG_PTR dwExtraInfo
);

パラメーター

[in] bVk

型: BYTE

仮想キー コード。 コードは、1 ~ 254 の範囲の値である必要があります。 完全な一覧については、「 仮想キー コード」を参照してください。

[in] bScan

型: BYTE

キーのハードウェア スキャン コード。

[in] dwFlags

型: DWORD

関数操作のさまざまな側面を制御します。 このパラメーターには、次の 1 つ以上の値を指定できます。

意味
KEYEVENTF_EXTENDEDKEY
0x0001
指定した場合、スキャン コードの前に、値が0xE0 (224) のプレフィックス バイトが付いています。
KEYEVENTF_KEYUP
0x0002
指定した場合、キーは解放されます。 指定しない場合、キーは押し込まれます。

[in] dwExtraInfo

種類: ULONG_PTR

キー ストロークに関連付けられている追加の値。

戻り値

なし

解説

アプリケーションは、画面スナップショットを取得してクリップボードに保存するために、PRINTSCRN キーの押下をシミュレートできます。 これを行うには、bVk パラメーターを VK_SNAPSHOT に設定して keybd_event を呼び出します。

次のサンプル プログラムでは、仮想キーが VK_NUMLOCK のkeybd_eventを使用して NUM LOCK ライトを切り替えます。 ライトをオフにする (FALSE) かオン (TRUE) かを示すブール値を受け取ります。 CAPS LOCK キー (VK_CAPITAL) と SCROLL LOCK キー (VK_SCROLL) にも同じ手法を使用できます。


   #include <windows.h>

   void SetNumLock( BOOL bState )
   {
      BYTE keyState[256];

      GetKeyboardState((LPBYTE)&keyState);
      if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
          (!bState && (keyState[VK_NUMLOCK] & 1)) )
      {
      // Simulate a key press
         keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | 0,
                      0 );

      // Simulate a key release
         keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                      0);
      }
   }

   void main()
   {
      SetNumLock( TRUE );
   }

要件

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

こちらもご覧ください