none
IME2010インストール後に標準辞書をレジストリへ登録させたい

    質問

  • はじめて質問をします。よろしくお願いいたします。

    外字製品とその外字辞書を扱っています。
    開発環境:Window XP SP3,VC6.0 です。

    外字辞書を外字製品のインストーラで自動登録させることを考えていますが、
    IME2010をインストール直後は、以下のレジストリに標準辞書類の登録がなく
    ユーザ辞書の登録しかないようです。

    HKEY_CURRENT_USER\Software\Microsoft\IMEJP\14.0\Dictionaries

    しかし、IME2010のプロパティ-[辞書/学習]タグをクリックしたときはデフォルトの
    標準辞書類が表示されており、通常の「読み」による変換も可能です。

    上記のレジストリに標準辞書などの登録を手動で反映するには、
    プロパティ-[辞書/学習]タグでの「適用」ボタンをクリックしなければ
    なりませんでした。(他にもやり方はあるかもしれませんが・・)

    「適用」ボタンをクリックするのと同様に、現在ユーザが使用している
    辞書(標準辞書も含めて)をレジストリに、すぐに反映させるような
    関数はないでしょうか?

    標準辞書登録が無い状態で外字辞書を登録してしまうと外字辞書のみ登録
    されてしまい標準の「読み」変換ができなくなります。

    なお、ライブラリに関してVC#で該当があればそれでも結構です。

    宜しくお願いいたします。

    2011年4月18日 7:18

回答

  • MYID1022 さん、

    Registryに値を書き込んで、新しい辞書を登録しようとするとうまくいかないという事ですよね。
    IME2010では、プロパティーに関するレジストリは、ご指摘のように初期状態では辞書の情報が入っておらず、何か設定を変更すると書き込まれるかと思います。
    しかし、このような挙動や、レジストリの構造などは、特に保障されたものではありませんので、製品コードの中で依存を作ってしまうのはは危険かと思います。

    辞書を登録したいという事であれば、以下のいずれかがお勧めです。

    1. オープン拡張辞書を使用する
      http://office2010.microsoft.com/ja-jp/products/HA101818298.aspx
      http://go.microsoft.com/?linkid=9705246
    2. コマンドライン プロパティーツール を使用する
      %programfiles%\Common Files\Microsoft Shared\IME14\IMEJP\IMJPUEXC.EXE を引数なしで起動すると、簡単な説明が表示されます。

      辞書の追加の場合は、以下のような感じになります。
      %programfiles%\Common Files\Microsoft Shared\IME14\IMEJP\IMJPUEXC.EXE addsysdict <辞書ファイル名> (0|1)
      (※ 最後の引数は、プロパティダイアログボックスの変換モードのチェックボックスの ON/OFFに対応しています)

    ご検討ください。

     


    いた
    2011年5月16日 13:24

すべての返信

  • MYID1022 さん、

    Registryに値を書き込んで、新しい辞書を登録しようとするとうまくいかないという事ですよね。
    IME2010では、プロパティーに関するレジストリは、ご指摘のように初期状態では辞書の情報が入っておらず、何か設定を変更すると書き込まれるかと思います。
    しかし、このような挙動や、レジストリの構造などは、特に保障されたものではありませんので、製品コードの中で依存を作ってしまうのはは危険かと思います。

    辞書を登録したいという事であれば、以下のいずれかがお勧めです。

    1. オープン拡張辞書を使用する
      http://office2010.microsoft.com/ja-jp/products/HA101818298.aspx
      http://go.microsoft.com/?linkid=9705246
    2. コマンドライン プロパティーツール を使用する
      %programfiles%\Common Files\Microsoft Shared\IME14\IMEJP\IMJPUEXC.EXE を引数なしで起動すると、簡単な説明が表示されます。

      辞書の追加の場合は、以下のような感じになります。
      %programfiles%\Common Files\Microsoft Shared\IME14\IMEJP\IMJPUEXC.EXE addsysdict <辞書ファイル名> (0|1)
      (※ 最後の引数は、プロパティダイアログボックスの変換モードのチェックボックスの ON/OFFに対応しています)

    ご検討ください。

     


    いた
    2011年5月16日 13:24
  • 板倉 様

    ご回答をいただき、誠にありがとうございました。

    お勧めいただいた方法で検討をさせていただきます。

     

     

    2011年5月18日 3:15
  • 板倉 様

    %programfiles%\Common Files\Microsoft Shared\IME14\IMEJP\IMJPUEXC.EXE を引数なしで起動すると、簡単な説明が表示されますが、

     使用文字制限オプション CODEAREAFORCONVERT の後に使用可能な用語定義名は

      ALL/JIS208/JIS208_AND_EUDC 以外に、下記3つUI選択項目に対応する定義名がありますか?

     ・ サロゲート ペア

     ・ Shift JIS

     ・ 印刷標準字体

    宜しくお願いします。 

    2012年4月2日 9:53
  • C32106さん、

    補足です。

       IMJPUEXC.EXE CODEAREAFORCONVERT

    で、サポートされている定義名が表示されます。

        Usage:  IMJPUEXC CODEAREAFORCONVERT [ALL | JIS208 | JIS208_AND_EUDC | NOSURROGATE | SJIS | PSG]

     ・ サロゲート ペア → NOSURROGATE
     ・ Shift JIS→ SJIS
     ・ 印刷標準字体→ PSG

    ですね。


    いた

    2012年4月6日 7:48