Share via


VkKeyScanExA 函式 (winuser.h)

將字元轉譯為對應的虛擬機碼和移位狀態。 函式會使用輸入語言和輸入地區設定標識碼所識別的實體鍵盤配置來翻譯字元。

語法

SHORT VkKeyScanExA(
  [in] CHAR ch,
  [in] HKL  dwhkl
);

參數

[in] ch

類型: TCHAR

要轉譯成虛擬機碼的字元。

[in] dwhkl

類型: HKL

用來轉譯字元的輸入地區設定標識符。 此參數可以是 LoadKeyboardLayout 函式先前傳回的任何輸入地區設定標識符。

傳回值

類型: SHORT

如果函式成功,則傳回值的低序位元組包含虛擬索引鍵程序代碼,而高順序位元組包含shift狀態,這可以是下列旗標位的組合。

傳回值 描述
1
按下任一 SHIFT 鍵。
2
按下任一 CTRL 鍵。
4
按下任一 ALT 鍵。
8
按下 Hankaku 鍵
16
鍵盤配置驅動程式所定義的保留 () 。
32
鍵盤配置驅動程式所定義的保留 () 。
 

如果函式找不到轉譯為傳遞字元碼的索引鍵,則低序和高序位元組都包含 –1。

備註

輸入地區設定標識碼是比鍵盤版面配置更廣泛的概念,因為它也可以包含語音轉換程式、輸入方法 編輯器 (輸入法) 或任何其他形式的輸入。

例如,對於使用右鍵做為shift鍵的鍵盤配置 (,例如法文鍵盤配置) ,shift 狀態會以值 6 表示,因為右側 ALT 鍵會在內部轉換成 CTRL+ALT。

會忽略數值按鍵 (VK_NUMPAD0 到VK_DIVIDE) 的翻译。 此函式旨在只將字元轉譯成主鍵盤區段的按鍵。 例如,字元 「7」 會轉譯成 VK_7,而不是VK_NUMPAD7。

VkKeyScanEx 是由使用 WM_KEYUPWM_KEYDOWN 訊息傳送字元的應用程式使用。

注意

winuser.h 標頭會將 VkKeyScanEx 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

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

另請參閱