VkKeyScanExA 関数 (winuser.h)
文字を対応する仮想キー コードとシフト状態に変換します。 この関数は、入力ロケール識別子によって識別される入力言語と物理キーボード レイアウトを使用して文字を変換します。
構文
SHORT VkKeyScanExA(
[in] CHAR ch,
[in] HKL dwhkl
);
パラメーター
[in] ch
種類: TCHAR
仮想キー コードに変換される文字。
[in] dwhkl
種類: HKL
文字の変換に使用される入力ロケール識別子。 このパラメーターには、 LoadKeyboardLayout 関数によって以前に返された任意の入力ロケール識別子を指定できます。
戻り値
種類: SHORT
関数が成功した場合、戻り値の下位バイトには仮想キー コードが含まれており、上位バイトにはシフト状態が含まれます。これは、次のフラグ ビットの組み合わせになります。
戻り値 | 説明 |
---|---|
|
Shift キーが押されます。 |
|
Ctrl キーを押します。 |
|
Alt キーを押します。 |
|
半角キーを押す |
|
予約済み (キーボード レイアウト ドライバーによって定義されます)。 |
|
予約済み (キーボード レイアウト ドライバーによって定義されます)。 |
渡された文字コードに変換されるキーが関数で見つからない場合、下位バイトと上位バイトの両方に –1 が含まれます。
注釈
入力ロケール識別子は、音声テキスト変換コンバーター、Input Method エディター (IME)、またはその他の形式の入力も含めることができるため、キーボード レイアウトよりも広範な概念です。
右側の Alt キーをシフト キーとして使用するキーボード レイアウト (たとえば、フランス語のキーボード レイアウト) の場合、右側の Alt キーは内部的に Ctrl + Alt に変換されるため、シフトの状態は値 6 で表されます。
テンキーの翻訳 (VK_NUMPAD0からVK_DIVIDE) は無視されます。 この関数は、メイン キーボード セクションからのみ文字をキーストロークに変換することを目的としています。 たとえば、文字 "7" はVK_NUMPAD7ではなくVK_7に変換されます。
VkKeyScanEx は、 メッセージのWM_KEYUP と WM_KEYDOWN を使用して文字を送信するアプリケーションで使用されます。
注意
winuser.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして VkKeyScanEx を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |