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
控制函式作業的各種層面。 此參數可以是下列一或多個值。
值 | 意義 |
---|---|
|
如果指定,掃描程式代碼前面會加上前置詞位元組,其值0xE0 (224) 。 |
|
如果指定,則會釋放金鑰。 如果未指定,則會抑制密鑰。 |
[in] dwExtraInfo
類型: ULONG_PTR
與按鍵筆劃相關聯的額外值。
傳回值
無
備註
應用程式可以模擬 PRINTSCRN 鍵的按下,以取得螢幕快照集並將其儲存至剪貼簿。 若要這樣做,請呼叫 keybd_event ,並將 bVk 參數設定為 VK_SNAPSHOT。
範例
下列範例程式會使用 keybd_event 搭配虛擬密鑰 的 VK_NUMLOCK 來切換 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) |
程式庫 | User32.lib |
Dll | User32.dll |