keybd_event関数 (winuser.h)
キーストロークを合成します。 システムは、このような合成キーストロークを使用して、WM_KEYUP または WM_KEYDOWN メッセージを生成できます。 キーボード ドライバーの割り込みハンドラーは、keybd_event 関数を呼び出します。
構文
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 つ以上の値を指定できます。
値 | 意味 |
---|---|
|
指定した場合、スキャン コードの前に、値が0xE0 (224) のプレフィックス バイトが付いています。 |
|
指定した場合、キーは解放されます。 指定しない場合、キーは押し込まれます。 |
[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 |