GetKeyNameTextA 関数 (winuser.h)

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

構文

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

パラメーター

[in] lParam

型: LONG

処理するキーボード メッセージの 2 番目のパラメーター ( 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 文字はカウントされません。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

キー名文字列の形式は、現在のキーボード レイアウトによって異なります。

キーボード レイアウトでは、名前が 1 文字より長いキーの文字列形式で名前の一覧が保持されます。 キー名は 現在アクティブなキーボード レイアウトに従って変換されるため、この関数は異なる キーボード レイアウトに対して異なる結果を返す可能性があります。

文字キーの名前は、文字自体です。 デッドキーの名前は完全にスペルアウトされています。

このメソッドは、複数の文字 (合字など) を生成する一部の キーボード レイアウト や、1 回のキー押しで印刷される補助 Unicode 文字では正しく動作しない場合があります。 また、'A' にマップされているキー。Z' 仮想キー コード は大文字の 'A'..' に変換されます。現在のキーボード レイアウトに関係なく、Z' 文字。 このような場合は、 ToUnicode メソッドまたは ToUnicodeEx メソッドを使用します。

winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetKeyNameText を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll

関連項目

キーボード入力

キーボード レイアウト

キーボード レイアウトのサンプル

ToUnicode

ToUnicodeEx