VkKeyScanA 関数 (winuser.h)
[この関数は、VkKeyScanEx 関数に置き換わりました。 ただし、キーボード レイアウト 指定する必要がない場合は、VkKeyScanを引き続き使用できます。
現在のキーボードの対応する仮想キー コードとシフト状態に文字を変換します。
構文
SHORT VkKeyScanA(
[in] CHAR ch
);
パラメーター
[in] ch
型: TCHAR
仮想キー コードに変換される文字。
戻り値
型: SHORT
関数が成功した場合、戻り値の下位バイトには仮想キー コードが含まれ、上位バイトにはシフト状態が含まれます。これは、次のフラグ ビットの組み合わせにすることができます。
戻り値 | 形容 |
---|---|
|
いずれかの Shift キーが押されます。 |
|
Ctrl キーを押します。 |
|
Alt キーを押します。 |
|
半角キーを押す |
|
予約済み (キーボード レイアウト ドライバーによって定義されます)。 |
|
予約済み (キーボード レイアウト ドライバーによって定義されます)。 |
渡された文字コードに変換するキーが関数で見つからない場合、下位バイトと上位バイトの両方に –1 が含まれます。
備考
右側の Alt キーをシフト キー (フランス語のキーボード レイアウトなど) として使用するキーボード レイアウトの場合、右側の Alt キーは内部的に Ctrl + Alt に変換されるため、シフトの状態は値 6 で表されます。
テンキー (VK_NUMPAD0 から VK_DIVIDE) の翻訳は無視されます。 この関数は、メイン キーボード セクションからのみ文字をキーストロークに変換することを目的としています。 たとえば、文字 "7" はVK_NUMPAD7ではなく、VK_7に変換されます。
VkKeyScan は、WM_KEYUP および WM_KEYDOWN メッセージを使用して文字を送信するアプリケーションで使用されます。
手記
winuser.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして VkKeyScan を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winuser.h (Windows.h を含む) |
ライブラリ | User32.lib |
DLL | User32.dll |
関連項目
- GetAsyncKeyState の
- GetKeyNameText を
する - GetKeyState を
する - GetKeyboardState を
する - キーボード入力
- SetKeyboardState の
- VkKeyScanEx の
- WM_KEYDOWN
- WM_KEYUP
- キーボード入力