GetKeyNameTextW 関数 (winuser.h)
キーの名前を表す文字列を取得します。
構文
int GetKeyNameTextW(
[in] LONG lParam,
[out] LPWSTR lpString,
[in] int cchSize
);
パラメーター
[in] lParam
型: long
処理するキーボード メッセージの 2 番目のパラメーター (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 文字はカウントされません。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
備考
キー名の文字列の形式は、現在のキーボード レイアウトによって異なります。
キーボード レイアウトでは、名前が 1 文字より長いキーの文字列形式で名前の一覧が保持されます。
キー名は、現在アクティブなキーボード レイアウト
文字キーの名前は文字自体です。 配信不能キーの名前は完全にスペルが付けられます。
'A' にマップされている文字キー。Z' 仮想キー コード は、<U+0041 ラテン大文字 A>に変換されます。現在のキーボード レイアウトに関係なく、U+005A ラテン大文字 Z> 文字を<します。 この場合は、
このメソッドは、1 回のキー押下で複数の文字 (合字など) または補助 Unicode 文字を生成する一部の キーボード レイアウト で正しく動作しない場合があります。
winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetKeyNameText を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winuser.h (Windows.h を含む) |
ライブラリ | User32.lib |
DLL | User32.dll |
関連項目
ToUnicode を
ToUnicodeEx の