Share via


keyBDINPUT 結構 (winuser.h)

包含模擬鍵盤事件的相關信息。

語法

typedef struct tagKEYBDINPUT {
  WORD      wVk;
  WORD      wScan;
  DWORD     dwFlags;
  DWORD     time;
  ULONG_PTR dwExtraInfo;
} KEYBDINPUT, *PKEYBDINPUT, *LPKEYBDINPUT;

成員

wVk

類型: WORD

虛擬金鑰程式代碼。 程式代碼必須是範圍 1 到 254 中的值。 如果 dwFlags 成員指定KEYEVENTF_UNICODE,wVk 必須是 0。

wScan

類型: WORD

金鑰的硬體掃描碼。 如果 dwFlags 指定KEYEVENTF_UNICODE,wScan 會指定要傳送至前景應用程式的 Unicode 字元。

dwFlags

類型: DWORD

指定按鍵的各種層面。 這個成員可以是下列值的特定組合。

意義
KEYEVENTF_EXTENDEDKEY
0x0001
如果指定, wScan 掃描程式代碼是由兩個字節的序列所組成,其中第一個字節的值為 0xE0。 如需詳細資訊,請參閱 擴充密鑰旗標
KEYEVENTF_KEYUP
0x0002
如果指定,則會釋放金鑰。 如果未指定,則會按下按鍵。
KEYEVENTF_SCANCODE
0x0008
如果指定, wScan 會識別金鑰,並忽略 wVk
KEYEVENTF_UNICODE
0x0004
如果指定,系統會合成 VK_PACKET 按鍵。 wVk 參數必須是零。 此旗標只能與 KEYEVENTF_KEYUP 旗標結合。 如需詳細資訊,請參閱<備註>一節。

time

類型: DWORD

事件的時間戳,以毫秒為單位。 如果此參數為零,則系統會提供自己的時間戳。

dwExtraInfo

類型: ULONG_PTR

與按鍵相關聯的其他值。 使用 GetMessageExtraInfo 函式來取得此資訊。

備註

INPUT_KEYBOARD 支援非鍵盤輸入方法,例如手寫辨識或語音辨識,就像是使用 KEYEVENTF_UNICODE 旗標的文字輸入一樣。 如果指定KEYEVENTF_UNICODE,SendInput 會將WM_KEYDOWN或WM_KEYUP訊息傳送至前景線程的訊息佇列,wParam 等於 VK_PACKETGetMessagePeekMessage 取得此訊息之後,將訊息傳遞至 TranslateMessage 會以 wScan 原本指定的 Unicode 字元張貼WM_CHAR訊息。 如果這個 Unicode 字元張貼至 ANSI 視窗,就會自動轉換成適當的 ANSI 值。

設定 KEYEVENTF_SCANCODE 旗標,以在掃描程式代碼方面定義鍵盤輸入。 這適用於仿真實體按鍵,不論目前使用哪一個鍵盤。 如果掃描碼是擴充密鑰,您也可以傳遞 KEYEVENTF_EXTENDEDKEY 旗標。 按鍵的虛擬按鍵值可能會根據目前的鍵盤配置或其他按下的按鍵而變更,但掃描程式代碼一律會相同。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 winuser.h (包括 Windows.h)

另請參閱