こんにちは、初めて投稿させていただきます。
宜しくお願いします。
早速ですが、今、ソフトキーボードの作成を行っております。
そのソフトキーボードはIMEパッドのソフトキーボードの英数字(ABC配列)とひらがな/カタカナ(50音配列)のような画面をもっており、それを切り替えて入力操作を行います。常に非アクティブ状態で動作し、別プロセスで動作するアクティブな入力エリアのコンテキストのIME状態を制御する処理を行っています。
入力対象のアプリケーションが、ノートパッドやEXCELであれば、問題なく動作するのですが、Wordの場合IME入力モードの切替がうまく行かず困っています。
尚、IMEモードの切替はIMM32のImmSetConversionStatus、英数字とひらがなの切替はkeybd_eventでAlt+ひらがなを送り、カナキーロックを変更し、切替を行っています。
調べたところ、Wordでは、詳細なテキストサービス(TSF?)が入力モードを制御しているようなので、詳細なテキストサービスをOFFにすると、一応想定通りの動作になりました。しかし、他のアプリとの競合でまた違ったエラーが発生してしまい、詳細なテキストサービスをOFFに出来ない為、詳細なテキストサービスをOFFにせずに入力可能な方法を模索しております。
詳細なテキストサービスの入力モードを制御できればいいのですが・・・
環境
言語:VS2008 C++
OS:WindowsXP SP3
Wordのバージョン:2002、2007
IMEのバージョン:IME2002、IME2003、IME2007
どなたか、よい知恵がありましたら、ご教授下さい。
宜しくお願い致します。