getKeyNameTextA 函式 (winuser.h)

擷取表示索引鍵名稱的字串。

語法

int GetKeyNameTextA(
  [in]  LONG  lParam,
  [out] LPSTR lpString,
  [in]  int   cchSize
);

參數

[in] lParam

類型: LONG

鍵盤訊息的第二個參數 (,例如要處理的 WM_KEYDOWN) 。 函式會解譯 lParam中的下列位位置。

Bits 意義
16-23 掃描碼。 此值取決於 OEM。
24 指出按鍵是否為擴充按鍵,例如出現在增強型 101 或 102 鍵鍵盤上的右鍵 ALT 和 CTRL 鍵。 如果它是擴充索引鍵,則值為 1;否則為 0。
25 「不小心」位。 呼叫此函式的應用程式會將這個位設定為表示函式不應該區分左右 CTRL 和 SHIFT 鍵,例如。

如需詳細資訊,請參閱 擊鍵訊息旗標

[out] lpString

類型: LPTSTR

將接收金鑰名稱的緩衝區。

[in] cchSize

類型: int

金鑰名稱的最大長度,以字元為單位,包括終止的 Null 字元。 (此參數應等於 lpString 參數所指向的緩衝區大小。)

傳回值

類型: int

如果函式成功,則會將以 Null 終止的字串複製到指定的緩衝區,而傳回值是字串的長度,以字元為單位,而不是計算終止的 Null 字元。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

按鍵名稱字串的格式取決於目前的鍵盤配置。

鍵盤配置會針對名稱長度超過單一字元的按鍵,以字元字串形式維護名稱清單。 按鍵名稱會根據 目前使用中的鍵盤配置進行翻譯,因此函式可能會針對不同的 鍵盤配置傳回不同的結果。

字元索引鍵的名稱是字元本身。 無效索引鍵的名稱會完整拼字。

這個方法可能無法與產生多個字元 (的某些 鍵盤版 面配置正常運作,亦即連字) 和/或補充 Unicode 字元,這些字元會在單鍵按下時列印。 此外,對應至 'A' 的索引鍵。Z' 虛擬機器碼 會轉譯為大寫 'A'。'不論目前的鍵盤配置為何,Z' 字元。 在這種情況下,請使用 ToUnicodeToUnicodeEx 方法。

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

規格需求

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

另請參閱

鍵盤輸入

鍵盤配置

鍵盤配置範例

ToUnicode

ToUnicodeEx