次の方法で共有


GetKeyNameTextA 関数 (winuser.h)

キーの名前を表す文字列を取得します。

構文

int GetKeyNameTextA(
  [in]  LONG  lParam,
  [out] LPSTR 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> 文字を<します。 この場合は、ToUnicode または ToUnicodeEx メソッド 使用して、対応するキー押下の文字を取得します。

このメソッドは、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 の