キーボード入力

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

このセクションの内容

名前 説明
キーボード入力の概要 キーボード入力について説明します。
キーボード入力の使用 キーボード入力に関連付けられているタスクについて説明します。
キーボード入力リファレンス 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 WM_KEYDOWN メッセージが TranslateMessage 関数によって翻訳されると、キーボード フォーカスでウィンドウにポストされます。 WM_CHAR メッセージには、押されたキーの文字コードが含まれています。
WM_DEADCHAR WM_KEYUP メッセージが TranslateMessage 関数によって翻訳されると、キーボード フォーカスでウィンドウにポストされます。 WM_DEADCHAR は、デッド キーによって生成される文字コードを指定します。 デッド キーは、別の文字と組み合わせて複合文字を形成する、ウムラウト (二重ドット) などの文字を生成するキーです。 たとえば、umlaut-O 文字 ( ) は、umlaut 文字のデッド キーを入力し、O キーを入力することによって生成されます。
WM_HOTKEY RegisterHotKey 関数によって登録されたホット キーをユーザーが押したときに投稿されます。 メッセージは、ホット キーを登録したスレッドに関連付けられているメッセージ キューの先頭に配置されます。
Wm_keydown システム以外のキーが押されると、キーボード フォーカスでウィンドウにポストされます。 非システム キーは、Alt キーが押されていないときに押されるキーです。
Wm_keyup システム以外のキーが離されると、キーボード フォーカスでウィンドウにポストされます。 非システム キーは、Alt キーが押されていないときに押されるキー、またはウィンドウにキーボード フォーカスがあるときに押されるキーボード キーです。
WM_KILLFOCUS キーボードフォーカスが失われる直前にウィンドウに送信されます。
WM_SETFOCUS キーボードフォーカスを取得した後、ウィンドウに送信されます。
WM_SYSDEADCHAR WM_SYSKEYDOWN メッセージが TranslateMessage 関数によって翻訳されたときに、キーボード フォーカスを使用してウィンドウに送信されます。 WM_SYSDEADCHAR は、システムのデッド キー (Alt キーを押しながら押されるデッド キー) の文字コードを指定します。
WM_SYSKEYDOWN ユーザーが F10 キー (メニュー バーをアクティブにする) を押すか、Alt キーを押しながら別のキーを押したときに、キーボード フォーカスでウィンドウにポストされます。 また、現在キーボードフォーカスを持っているウィンドウがない場合にも発生します。この場合、 WM_SYSKEYDOWN メッセージはアクティブ ウィンドウに送信されます。 メッセージを受信するウィンドウでは、 lParam パラメーターでコンテキスト コードを確認することで、これら 2 つのコンテキストを区別できます。
WM_SYSKEYUP Alt キーが押されている間に押されたキーをユーザーが離したときに、キーボード フォーカスでウィンドウにポストされます。 また、現在キーボードフォーカスを持っているウィンドウがない場合にも発生します。この場合、 WM_SYSKEYUP メッセージはアクティブ ウィンドウに送信されます。 メッセージを受信するウィンドウでは、 lParam パラメーターでコンテキスト コードを確認することで、これら 2 つのコンテキストを区別できます。
WM_UNICHAR WM_KEYDOWN メッセージが TranslateMessage 関数によって翻訳されると、キーボード フォーカスでウィンドウにポストされます。 WM_UNICHAR メッセージには、押されたキーの文字コードが含まれています。

構造

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

定数

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

関連項目