|
分類:[.NET 全般]
実行環境 Windows XP 以降 .NET Framework 3.5
開発環境 Windows Forms アプリケーション VB or C#
こんにちは、ダッチです。
他のアプリケーションに対して、 文字列を自動で入力させるアプリケーションを作成しています。
SendInput 関数で KEYEVENTF_UNICODE を指定することで、 文字列を入力させることはできました。
しかし Windows XP では IME をオフや無効状態にしても IME が強制的にオンになり 入力した内容が変換中の状態になってしまいます。
Windows Vista 以降では IME がオフのままで問題ありません。
SendKeys.Send メソッドだと XP でも IME がオフのままになるので、 これが理想なのですが、^ を送信すると & になるなど、 キーボードの種類によって問題が発生するので、使用したくありません。
ちなみに IME をオフにするには WM_IME_CONTROL メッセージで IMC_SETOPENSTATUS を送信しました。
IME を無効にするには ImmAssociateContext 関数を使用しました。
Windows XP でも IME がオフの状態であれば そのまま文字列を入力できる方法はありませんでしょうか?
よろしくお願いいたします。
|