次の方法で共有


VkKeyScanW 関数 (winuser.h)

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

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

構文

SHORT VkKeyScanW(
  [in] WCHAR 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 を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

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

こちらもご覧ください