keybd_event

キーストロークを合成します。合成されたキーストロークから、 WM_KEYUPWM_KEYDOWN メッセージを生成します。

Windows NT/2000/XP: この関数は SendInput 関数に取って代わられました。

VOID keybd_event(
    BYTE  bVk,            // 仮想キーコード
    BYTE  bScan,          // ハードウェアスキャンコード
    DWORD dwFlags,        // 動作指定フラグ
    ULONG_PTR dwExtraInfo // 追加情報
);

USER32.DLL

引数

bVk

仮想キーコードを指定します。 1 以上 254 以下の値でなければなりません。

bScan

このパラメータは使用されません。

dwFlags

関数の動作を指定します。 0 または次の値の組合わせで指定します。

意味
0x0001 (KEYEVENTF_EXTENDEDKEY)

スキャンコードにプリフィックスバイト 0xE0 (224) を付加します。

0x0002 (KEYEVENTF_KEYUP)

キーを離す操作にします。指定しなければ、キーを押す操作になります。

dwExtraInfo

キーストロークに関連した 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] キーを切り替えることはできません。

(注) VC++6.0付属のMSDNには次のような記述があった(しかも日本語版・英語版で内容が異なる)。現在では、これに関する記述はない。

この関数は OEM 依存のハードウェアスキャンコードを Windows に渡すことができますが、アプリケーションはスキャンコードを利用するべきではありません。

アプリケーションは、スクリーンのスナップショットを得るために、 [PrintScreen] キーの押し下げをシミュレートすることができます。これを実現するには、 bVk パラメータに 0x2C (VK_SNAPSHOT) を、 bScan パラメータに 0 (画面全体のスナップショットを取るとき)または 1 (アクティブウィンドウのスナップショットを取るとき)を指定して、 keybd_event 関数を呼び出します。

スクリーンのスナップショットをとってクリップボードにコピーする場合は、Windowsのバージョンによって方法が異なります。まず GetVersionEx 関数でバージョン情報を取得し、メジャーバージョンが4以下か5以上かで異なるコードを実行する必要があります。

対応情報

Windows 95 以降 / Windows NT 3.1 以降