共用方式為


KEYBDINPUT 結構(winuser.h)

包含模擬鍵盤事件的相關資訊。

語法

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

Members

wVk

類型: WORD

一個 虛擬鑰匙代碼。 代碼必須是 1 到 254 之間的值。 若 dwFlags 成員指定 KEYEVENTF_UNICODE,wVk 必須為 0。

wScan

類型: WORD

鑰匙的硬體掃描碼。 若 dwFlags 指定 KEYEVENTF_UNICODE,wScan 則指定一個 Unicode 字元,傳送至前景應用程式。

dwFlags

類型: DWORD

指定按鍵的各個面向。 這個成員可以是以下數值的某些組合。

價值觀 Meaning
KEYEVENTF_EXTENDEDKEY
0x0001
若有指定, wScan 掃描碼由兩個位元組組成,第一個位元組值為 0xE0。 更多資訊請參見 Extended-Key 旗 幟。
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_PACKET。 一旦 GetMessagePeekMessage 收到此訊息,將訊息傳給 TranslateMessage 會發布一則包含 wScan 原始 Unicode 字元的 WM_CHAR 訊息。 若 Unicode 字元貼入 ANSI 視窗,該 Unicode 字元將自動轉換為相應的 ANSI 值。

KEYEVENTF_SCANCODE 旗標設定為以掃描碼定義鍵盤輸入。 這對於模擬實體按鍵非常有用,無論目前使用的是哪個鍵盤。 如果掃描碼是擴展鍵,你也可以傳 KEYEVENTF_EXTENDEDKEY 旗標。 按鍵的虛擬按鍵值會根據當前鍵盤配置或按過的其他按鍵而改變,但掃描碼永遠相同。

需求

Requirement 價值觀
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
Header winuser.h (包括 Windows.h)

另請參閱