none
IMEの制御について RRS feed

  • 質問

  • こんにちは、初めて投稿させていただきます。

    宜しくお願いします。

     

    早速ですが、今、ソフトキーボードの作成を行っております。

     

    そのソフトキーボードは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

     

    どなたか、よい知恵がありましたら、ご教授下さい。

    宜しくお願い致します。

    2008年9月26日 10:16

回答

  • Text Serviceを1つ作成してしまうというのは、如何でしょうか?

    IMEと違い Text Service ならば、Windows SDK で開発できますので…。

     

    2008年9月30日 4:33

すべての返信

  • Text Serviceを1つ作成してしまうというのは、如何でしょうか?

    IMEと違い Text Service ならば、Windows SDK で開発できますので…。

     

    2008年9月30日 4:33
  • こんにちは。中川俊輔 です。

     

    Takashi SAKAMOTOさん、回答ありがとうございます。

     

    ヒビキさん、フォーラムのご利用ありがとうございます。

    その後いかがでしょうか?

    有用な情報と思われたため、

    勝手ながらTakashi SAKAMOTOさんの回答へ回答済みチェックをつけさせていただきました。

    追加の質問等あれば、是非投稿してみてください。

     

    今後ともフォーラムをよろしくお願いします。

    それでは!

    2008年10月14日 8:29