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> 字元。 在此情況下,請使用 ToUnicode 或 ToUnicodeEx 方法來取得對應按鍵按下的字元。
此方法可能無法與某些 鍵盤配置正常運作, 在單鍵按下時產生多個字元(例如連字)或補充 Unicode 字元。
winuser.h 標頭會將 GetKeyNameText 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | winuser.h (包括 Windows.h) |
連結庫 | User32.lib |
DLL | User32.dll |