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' 字元。 在這種情況下,請使用 ToUnicode 或 ToUnicodeEx 方法。
winuser.h 標頭會將 GetKeyNameText 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應