共用方式為


GetKeyNameTextA 函式 (winuser.h)

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

語法

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

參數

[in] lParam

類型:LONG

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

意義
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

言論

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

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

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

對應至 『A』 的字元索引鍵。Z' 虛擬金鑰代碼 會轉譯為 <U+0041 拉丁大寫字母 A>。。不論目前的鍵盤配置為何,<U+005A 拉丁大寫字母 Z> 字元。 在此情況下,請使用 ToUnicodeToUnicodeEx 方法來取得對應按鍵按下的字元。

此方法可能無法與某些 鍵盤配置正常運作, 在單鍵按下時產生多個字元(例如連字)或補充 Unicode 字元。

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

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winuser.h (包括 Windows.h)
連結庫 User32.lib
DLL User32.dll

另請參閱

鍵盤輸入

鍵盤配置

鍵盤版面配置範例

ToUnicode

ToUnicodeEx