キーボード入力
このセクションでは、システムがキーボード入力を生成する方法と、アプリケーションがその入力を受け取って処理する方法について説明します。
このセクションでは
名前 | 形容 |
---|---|
キーボード入力 について | キーボード入力について説明します。 |
キーボード入力 を使用した | キーボード入力に関連付けられているタスクについて説明します。 |
キーボード入力リファレンス | 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 進数の値、およびシステムで使用される仮想キー コードに相当するマウスまたはキーボード。 コードは数値順に一覧表示されます。 |
関連項目
- キーボード入力 について