SendInput を使用して複数の文字を送信する
SendInput() を使用して文字を送信する場合、複数の文字を送信するのは少し難しい場合があります。
最初に考慮すべき点は、INPUT 構造体の数です。 SendInput() は INPUT 構造体の数を入力として受け取るため、正しい値を指定していることを確認する必要があります。指定したコード スニペットでは、2 つの文字を送信しようとしていますが、INPUT 構造体を 1 つだけ渡していますが、これは正しくありません。
さらに、各仮想キーは 1 つの INPUT 構造体で表すことはできません。代わりに、仮想キーごとに複数の INPUT 構造体の配列が必要です。これは、各キーにキーダウン イベントとキーアップ イベントが必要なためです。したがって、2 つの仮想キーを送信する例では、合計 4 つの INPUT 構造体が必要です。
KEYEVENTF_UNICODE に関しては、仮想キーでは動作しないことに注意することが重要です。代わりに、実際の Unicode コードポイントを利用します。 Unicode コードポイントは UTF-16 コードユニットとして表され、各コードポイントは 1 つの INPUT に対応します。これは、UTF-16 サロゲート ペアを必要とする Unicode コードポイントを送信する場合、2 セットのダウン/アップ INPUT が必要になることを意味します。 1 つは上位サロゲート用、もう 1 つは下位サロゲート用です。
KEYEVENTF_UNICODE を使用して Unicode 文字の文字列を送信するには、提供されているコード スニペットで説明されているのと同様のアプローチに従うことができます。
以上が## KEYEVENTF_UNICODE を使用して SendInput() で複数の文字を送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。