次の方法で共有


キーボード入力

このセクションでは、システムがキーボード入力を生成する方法と、アプリケーションがその入力を受け取って処理する方法について説明します。

このセクションでは

名前 形容
キーボード入力 について キーボード入力について説明します。
キーボード入力 を使用した キーボード入力に関連付けられているタスクについて説明します。
キーボード入力リファレンス API リファレンスが含まれています。

関数

名前 形容
ActivateKeyboardLayout 呼び出し元のスレッドまたは現在のプロセスの入力ロケール識別子 (以前はキーボード レイアウト ハンドルと呼ばれます) を設定します。 入力ロケール識別子は、キーボードの物理レイアウトだけでなく、ロケールも指定します。
BlockInput キーボードとマウスの入力イベントがアプリケーションに到達するのをブロックします。
EnableWindow 指定したウィンドウまたはコントロールへのマウス入力とキーボード入力を有効または無効にします。 入力を無効にすると、マウスクリックやキー押下などの入力がウィンドウに表示されません。 入力が有効になっている場合、ウィンドウはすべての入力を受け取ります。
GetActiveWindow 呼び出し元のスレッドのメッセージ キューにアタッチされているアクティブ ウィンドウのウィンドウ ハンドルを取得します。
GetAsyncKeyState 関数の呼び出し時にキーが上下にあるかどうか、および GetAsyncKeyStateする前の呼び出しの後にキーが押されたかどうかを判断します。
GetFocusする ウィンドウが呼び出し元のスレッドのメッセージ キューにアタッチされている場合は、キーボード フォーカスがあるウィンドウへのハンドルを取得します。
GetKeyboardLayout 指定したスレッドのアクティブな入力ロケール識別子 (以前はキーボード レイアウトと呼ばれます) を取得します。 idThread パラメーターが 0 の場合、アクティブ スレッドの入力ロケール識別子が返されます。
GetKeyboardLayoutListする システム内の現在の入力ロケールのセットに対応する入力ロケール識別子 (旧称キーボード レイアウト ハンドル) を取得します。 この関数は、指定したバッファーに識別子をコピーします。
GetKeyboardLayoutNameする アクティブな入力ロケール識別子 (以前はキーボード レイアウトと呼ばれる) の名前を取得します。
GetKeyboardStateする 256 仮想キーの状態を指定されたバッファーにコピーします。
GetKeyNameText キーの名前を表す文字列を取得します。
GetKeyState 指定した仮想キーの状態を取得します。 状態は、キーが上、下、または切り替えになっているかどうかを指定します (キーが押されるたびにオン、オフが交互になります)。
GetLastInputInfoする 最後の入力イベントの時刻を取得します。
IsWindowEnabled 指定したウィンドウがマウスとキーボードの入力に対して有効になっているかどうかを判断します。
LoadKeyboardLayout 新しい入力ロケール識別子 (以前はキーボード レイアウトと呼ばれます) をシステムに読み込みます。 一度に複数の入力ロケール識別子を読み込むことができますが、一度にアクティブになるのはプロセスごとに 1 つだけです。 複数の入力ロケール識別子を読み込むと、それらを迅速に切り替えることができます。
MapVirtualKey 仮想キー コードをスキャン コードまたは文字値に変換 (マップ) するか、スキャン コードを仮想キー コードに変換します。
指定したコードの翻訳に使用するキーボード レイアウトへのハンドルを指定するには、mapVirtualKeyEx関数使用します。
MapVirtualKeyEx 仮想キー コードをスキャン コードまたは文字値にマップするか、スキャン コードを仮想キー コードに変換します。 この関数は、入力言語と入力ロケール識別子を使用してコードを変換します。
OemKeyScan OEMASCII コード 0 から0x0FFを OEM スキャン コードとシフト状態にマップします。 この関数は、プログラムがキーボード入力をシミュレートして OEM テキストを別のプログラムに送信できるようにする情報を提供します。
RegisterHotKey システム全体のホット キーを定義します。
SendInput キーストローク、マウスの動き、ボタンのクリックを合成します。
SetActiveWindow ウィンドウをアクティブにします。 ウィンドウは、呼び出し元スレッドのメッセージ キューにアタッチする必要があります。
SetFocus キーボード フォーカスを指定したウィンドウに設定します。 ウィンドウは、呼び出し元スレッドのメッセージ キューにアタッチする必要があります。
SetKeyboardStateする 256 バイトのキーボード キー状態の配列を、呼び出し元スレッドのキーボード入力状態テーブルにコピーします。 これは、GetKeyboardState および GetKeyState関数アクセスするテーブルと同じです。 このテーブルに加えられた変更は、他のスレッドへのキーボード入力には影響しません。
ToAscii 指定した仮想キー コードとキーボードの状態を、対応する文字または文字に変換します。 この関数は、キーボード レイアウト ハンドルによって識別される入力言語と物理キーボード レイアウトを使用してコードを変換します。
指定したコードの翻訳に使用するキーボード レイアウトのハンドルを指定するには、ToAsciiEx 関数を使用します。
ToAsciiEx 指定した仮想キー コードとキーボードの状態を、対応する文字または文字に変換します。 この関数は、入力ロケール識別子によって識別される入力言語と物理キーボード レイアウトを使用してコードを変換します。
toUnicodeする 指定した仮想キー コードとキーボードの状態を、対応する Unicode 文字に変換します。
指定したコードの翻訳に使用するキーボード レイアウトへのハンドルを指定するには、ToUnicodeEx 関数を使用します。
ToUnicodeExする 指定した仮想キー コードとキーボードの状態を、対応する Unicode 文字に変換します。
UnloadKeyboardLayout 入力ロケール識別子 (以前はキーボード レイアウトと呼ばれます) をアンロードします。
UnregisterHotKey 呼び出し元のスレッドによって以前に登録されたホット キーを解放します。
VkKeyScanEx 文字を対応する仮想キー コードとシフト状態に変換します。 この関数は、入力ロケール識別子によって識別される入力言語と物理キーボード レイアウトを使用して文字を変換します。

次の関数は廃止されています。

機能 形容
GetKBCodePage 現在のコード ページを取得します。
keybd_event キーストロークを合成します。 システムは、このような合成されたキーストロークを使用して、WM_KEYUP または WM_KEYDOWN メッセージを生成できます。 キーボード ドライバーの割り込みハンドラーは、keybd_event 関数を呼び出します。
VkKeyScan 現在のキーボードの対応する仮想キー コードとシフト状態に文字を変換します。

メッセージ

名前 形容
WM_GETHOTKEY ウィンドウに関連付けられているホット キーを決定します。
WM_SETHOTKEY ホット キーをウィンドウに関連付けます。 ユーザーがホット キーを押すと、システムによってウィンドウがアクティブになります。

通知

名前 形容
WM_ACTIVATE アクティブ化されているウィンドウと非アクティブ化されているウィンドウの両方に送信されます。 ウィンドウで同じ入力キューが使用されている場合、メッセージは同期的に送信されます。最初に、非アクティブ化されている最上位レベルのウィンドウのウィンドウ プロシージャに、次にアクティブ化されている最上位ウィンドウのウィンドウ プロシージャに送信されます。 ウィンドウで異なる入力キューが使用されている場合、メッセージは非同期的に送信されるため、ウィンドウは直ちにアクティブ化されます。
WM_APPCOMMAND ユーザーがアプリケーション コマンド イベントを生成したことをウィンドウに通知します。たとえば、マウスを使用してアプリケーション コマンド ボタンをクリックするか、キーボードにアプリケーション コマンド キーを入力します。
WM_CHAR TranslateMessage 関数によって WM_KEYDOWN メッセージが翻訳されたときに、キーボード フォーカスを使用してウィンドウに投稿されます。 WM_CHAR メッセージには、押されたキーの文字コードが含まれています。
WM_DEADCHAR TranslateMessage 関数によって WM_KEYUP メッセージが翻訳されたときに、キーボード フォーカスを使用してウィンドウに投稿されます。 WM_DEADCHAR は、デッド キーによって生成される文字コードを指定します。 デッド キーは、別の文字と組み合わせて複合文字を形成する、ウムラウト (二重ドット) などの文字を生成するキーです。 たとえば、umlaut-O 文字 ( ) は、umlaut 文字のデッド キーを入力し、O キーを入力することによって生成されます。
WM_HOTKEY ユーザーが RegisterHotKey 関数によって登録されたホット キーを押したときに投稿されます。 メッセージは、ホット キーを登録したスレッドに関連付けられているメッセージ キューの先頭に配置されます。
WM_KEYDOWN システム以外のキーが押されたときに、キーボード フォーカスを使用してウィンドウにポストされます。 非システム キーは、ALT キーが押されていないときに押されるキーです。
WM_KEYUP システム以外のキーが解放されたときに、キーボード フォーカスを使用してウィンドウに投稿されます。 非システム キーとは、Alt キーが押されていないときに押されるキー、またはウィンドウにキーボード フォーカスがある場合に押されるキーボード キーです。
WM_KILLFOCUS キーボード フォーカスが失われる直前にウィンドウに送信されます。
WM_SETFOCUS キーボードフォーカスを取得した後、ウィンドウに送信されます。
WM_SYSDEADCHAR TranslateMessage 関数によって WM_SYSKEYDOWN メッセージが翻訳されたときに、キーボード フォーカスを使用してウィンドウに送信されます。 WM_SYSDEADCHAR は、システムのデッド キー (Alt キーを押しながら押されるデッド キー) の文字コードを指定します。
WM_SYSKEYDOWN ユーザーが F10 キー (メニュー バーをアクティブにするキー) を押すか、Alt キーを押しながら別のキーを押したときに、キーボード フォーカスでウィンドウにポストされます。 また、現在キーボード フォーカスがあるウィンドウがない場合にも発生します。この場合、WM_SYSKEYDOWN メッセージはアクティブ ウィンドウに送信されます。 メッセージを受信するウィンドウでは、lParam パラメーターのコンテキスト コードを確認することで、これら 2 つのコンテキストを区別できます。
WM_SYSKEYUP Alt キーが押されている間に押されたキーをユーザーが離したときに、キーボード フォーカスを使用してウィンドウに投稿されます。 また、現在キーボード フォーカスがあるウィンドウがない場合にも発生します。この場合、WM_SYSKEYUP メッセージはアクティブ ウィンドウに送信されます。 メッセージを受信するウィンドウでは、lParam パラメーターのコンテキスト コードを確認することで、これら 2 つのコンテキストを区別できます。
WM_UNICHAR TranslateMessage 関数によって WM_KEYDOWN メッセージが翻訳されたときに、キーボード フォーカスを使用してウィンドウに投稿されます。 WM_UNICHAR メッセージには、押されたキーの文字コードが含まれています。

構造

名前 形容
HARDWAREINPUT キーボードまたはマウス以外の入力デバイスによって生成されたシミュレートされたメッセージに関する情報が含まれます。
入力する キーストローク、マウスの動き、マウスクリックなどの入力イベントを合成するために使用される情報が含まれます。
KEYBDINPUT シミュレートされたキーボード イベントに関する情報が含まれています。
LASTINPUTINFOする 最後の入力の時刻を格納します。
MOUSEINPUT シミュレートされたマウス イベントに関する情報が含まれています。

定数

名前 形容
Virtual-Key コードの シンボリック定数名、16 進数の値、およびシステムで使用される仮想キー コードに相当するマウスまたはキーボード。 コードは数値順に一覧表示されます。

関連項目