getKeyState 函式 (winuser.h)

擷取指定之虛擬金鑰的狀態。 狀態會指定按鍵是向上、向下或切換 (開啟、關閉—每次按下按鍵時都會交替) 。

語法

SHORT GetKeyState(
  [in] int nVirtKey
);

參數

[in] nVirtKey

類型: int

虛擬金鑰。 如果所需的虛擬金鑰是字母或數位 (A 到 Z、a 到 z 或 0 到 9) , 則 nVirtKey 必須設定為該字元的 ASCII 值。 對於其他金鑰,它必須是虛擬金鑰程式碼。

如果使用非英文鍵盤配置,則 ASCII A 到 Z 範圍中的值虛擬按鍵,並使用 0 到 9 來指定大部分的字元鍵。 例如,針對德文鍵盤配置,ASCII O (0x4F) 值虛擬按鍵是指 「o」 鍵,而 VK_OEM_1 則是指 「o with umlaut」 鍵。

傳回值

類型: SHORT

傳回值會指定指定虛擬金鑰的狀態,如下所示:

  • 如果高序位為 1,索引鍵會關閉;否則,就會啟動。
  • 如果低序位為 1,則會切換索引鍵。 如果已開啟 CAPS LOCK 鍵,則會切換金鑰,例如 CAPS LOCK 鍵。 如果低序位為 0,索引鍵會關閉並取消切換。 切換鍵的指標光線 (如果鍵盤上有任何) 在切換按鍵時開啟,以及當按鍵未切換時關閉。

備註

從此函式傳回的金鑰狀態會隨著執行緒從其訊息佇列讀取金鑰訊息而變更。 狀態不會反映與硬體相關聯的中斷層級狀態。 使用 GetAsyncKeyState 函式來擷取該資訊。

應用程式會呼叫 GetKeyState 以回應鍵盤輸入訊息。 此函式會在產生輸入訊息時擷取索引鍵的狀態。

若要擷取所有虛擬金鑰的狀態資訊,請使用 GetKeyboardState 函式。

應用程式可以使用 虛擬金鑰碼 常數 VK_SHIFTVK_CONTROLVK_MENU 作為 nVirtKey 參數的值。 這會提供 SHIFT、CTRL 或 ALT 鍵的狀態,而不區分左右。 應用程式也可以使用下列虛擬索引鍵程式碼常數作為 nVirtKey 的值,以區分這些索引鍵的左右實例:

VK_LSHIFTVK_RSHIFT VK_LCONTROL VK_RCONTROL VK_LMENUVK_RMENU這些左右區分常數只能透過GetKeyboardState、SetKeyboardState、GetAsyncKeyStateGetKeyStateMapVirtualKey函式來使用。

範例

如需範例,請參閱 顯示鍵盤輸入

規格需求

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

另請參閱