キーストロークを合成します。合成されたキーストロークから、 WM_KEYUP や WM_KEYDOWN メッセージを生成します。
Windows NT/2000/XP: この関数は SendInput 関数に取って代わられました。
VOID keybd_event( BYTE bVk, // 仮想キーコード BYTE bScan, // ハードウェアスキャンコード DWORD dwFlags, // 動作指定フラグ ULONG_PTR dwExtraInfo // 追加情報 );
USER32.DLL
仮想キーコードを指定します。 1 以上 254 以下の値でなければなりません。
このパラメータは使用されません。
関数の動作を指定します。 0 または次の値の組合わせで指定します。
値 | 意味 |
---|---|
0x0001 (KEYEVENTF_EXTENDEDKEY) | スキャンコードにプリフィックスバイト 0xE0 (224) を付加します。 |
0x0002 (KEYEVENTF_KEYUP) | キーを離す操作にします。指定しなければ、キーを押す操作になります。 |
キーストロークに関連した 32 ビットの追加情報を指定します。
戻り値はありません。
アプリケーションは、スクリーンのスナップショットを取得してクリップボードへ保存するために、 [PrintScreen] キーの押し下げをシミュレートすることができます。これには、 bVk パラメータに 0x2C (VK_SNAPSHOT) を指定して、 keybd_event 関数を呼び出します。
Windows NT/2000/XP: keybd_event 関数は [Num Lock], [Caps Lock], [Scroll Lock] キーを切り替えることができます。
Windows 95/98/Me: keybd_event 関数は [Caps Lock], [Scroll Lock] キーを切り替えることができますが、 [Num Lock] キーを切り替えることはできません。
この関数は OEM 依存のハードウェアスキャンコードを Windows に渡すことができますが、アプリケーションはスキャンコードを利用するべきではありません。
アプリケーションは、スクリーンのスナップショットを得るために、 [PrintScreen] キーの押し下げをシミュレートすることができます。これを実現するには、 bVk パラメータに 0x2C (VK_SNAPSHOT) を、 bScan パラメータに 0 (画面全体のスナップショットを取るとき)または 1 (アクティブウィンドウのスナップショットを取るとき)を指定して、 keybd_event 関数を呼び出します。
スクリーンのスナップショットをとってクリップボードにコピーする場合は、Windowsのバージョンによって方法が異なります。まず GetVersionEx 関数でバージョン情報を取得し、メジャーバージョンが4以下か5以上かで異なるコードを実行する必要があります。
スクリーン全体のスナップショットを得るには、 bVk パラメータに 0x2C (VK_SNAPSHOT) を、 bScan パラメータに 0 を指定します。
アクティブウィンドウのスナップショットを得るには、 bVk パラメータに 0x2C (VK_SNAPSHOT) を、 bScan パラメータに 1 を指定します。
スクリーン全体のスナップショットを得るには、 bVk パラメータに 0x2C (VK_SNAPSHOT) を、 bScan パラメータに 1 を指定します。
アクティブウィンドウのスナップショットを得るには、 [Alt] キー (VK_MENU) を押しながら [PrintScreen] キー (VK_SNAPSHOT) を押す動作をエミュレートします。すなわち、
keybd_event(VK_MENU, 0, 0, 0); keybd_event(VK_SNAPSHOT, 0, 0, 0); keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
Windows 95 以降 / Windows NT 3.1 以降