次の方法で共有


VkKeyScanA 関数 (winuser.h)

[この関数は、VkKeyScanEx 関数に置き換わりました。 ただし、キーボード レイアウト 指定する必要がない場合は、VkKeyScanを引き続き使用できます。

現在のキーボードの対応する仮想キー コードとシフト状態に文字を変換します。

構文

SHORT VkKeyScanA(
  [in] CHAR ch
);

パラメーター

[in] ch

型: TCHAR

仮想キー コードに変換される文字。

戻り値

型: SHORT

関数が成功した場合、戻り値の下位バイトには仮想キー コードが含まれ、上位バイトにはシフト状態が含まれます。これは、次のフラグ ビットの組み合わせにすることができます。

戻り値 形容
1
いずれかの Shift キーが押されます。
2
Ctrl キーを押します。
4
Alt キーを押します。
8
半角キーを押す
16
予約済み (キーボード レイアウト ドライバーによって定義されます)。
32
予約済み (キーボード レイアウト ドライバーによって定義されます)。
 

渡された文字コードに変換するキーが関数で見つからない場合、下位バイトと上位バイトの両方に –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

関連項目