2007年02月15日

Windows Vista 外字エディタの仕様が変である件

 Vista の外字エディタは、管理者権限をもっていないと起動しません。といいますか、一般ユーザーで起動すると、管理権限のユーザー名を入力するためのダイアログが出てきて、結局、管理権限のユーザーで実行することになります。
 「すべてのフォントにリンク」された外字はそもそもシステムフォルダに作成されるわけですから、管理者が実行すべきものです。ですから、これはこれで正しい動作です。

 しかし、「指定したフォントにリンク」された外字の場合は、この仕様はちょっとおかしい。この外字は、標準ではユーザーフォルダ、
C:\Users\ユーザー名\AppData\Local\Microsoft\Windows\EUDC に保存されるようになっています。ということは、別のユーザーでログオンすると、その外字ファイルは見えませんし、外字の設定もユーザー毎ですから、その外字は完全にそのユーザー一人だけのものになります。

 つまり、管理権限ユーザーでログオンし、外字エディタで「指定したフォントにリンク」された外字を作成しても、一般ユーザーでログオンするとその外字は使えない。
 それじゃあ、一般ユーザーでも同じ外字を作ってみようかと、外字エディタを起動する。
 すると、管理権限のユーザーを求めてくる。
 だから、管理権限のユーザー名とパスワードを入力して外字エディタを起動する。
 そこで「指定したフォントにリンク」を作成するとどうなるかというと、プログラム自体が管理ユーザーの元で動いていますから、この外字は結局、管理ユーザーのフォルダに作成されます。外字の設定情報も管理ユーザーのレジストリに保存されます。

 これでは永遠に、一般ユーザーは「指定したフォントにリンク」された外字を使うことはできない、ということになります。
 イレギュラー的に外字ファイルを共有フォルダに保存し、手作業でレジストリを書き換えればできますけどね。この仕様は問題ありです。中途半端です。
 結論を言えば、「一般ユーザーでは、外字を駆使できない」ということです。

 そういえば、Vista って外字エディタを起動するメニューってどこにあるんでしょうか。
 今のところ見つけられないので、私は窓旗ボタンの検索で直接、eudcedit って打っちゃってますが、普通はこんな起動方法は使いませんよね。
 メニューにないってのは外字なんか使うなってこと!?
posted by sjoe at 18:03| Comment(9) | TrackBack(0) | Vista
この記事へのコメント
お初にお目にかかります、外字に困っている某プログラマです。
eudcedit.exeの場所ですが、system32フォルダに存在します。
スタートメニューの[ファイル名を指定して実行]でeudceditを直接入力したほうが速いですけどね^^;
Posted by ruin at 2007年05月02日 09:54
メニューには無いですよね。
実フォルダ開いていくようなことは面倒なので、
やっぱり直打ちするか、自分でショートカット作るか、ってことになりますね。

個人的には直打ちでもいいですけど。
Posted by sjoe at 2007年05月10日 09:35
一般ユーザは外字を利用できないといのは、間違いだと思います。以下の手順で使用可能です。
一般ユーザでログインし、スタートメニューからコマンドプロンプトを右クリックして管理者として実行を選択します。(管理者のパスワードを応答します)
コマンドプロンプトからeudceditを起動します。
「指定したフォントにリンク」で保存先を例えば、c:\Users\Publicの下にします。(eudcといったフォルダを作成しておけばわかりやすいかも)
そうすると普通に一般ユーザでも「指定したフォントにリンク」した外字が問題なく使用できます。
管理者のアカウントを知っている事が大前提ですが。
Posted by つばさ at 2007年08月20日 21:29
ご指摘ありがとうございます。
試してみました。確かに一般ユーザーでも「指定したフォントにリンク」した外字が使えますね。

しかし、一時的なもののようです。
設定後、すべてのユーザーを完全にログオフし、再び一般ユーザーでログオンしなおすと、やはり使えなくなります。

これは一般ユーザーのレジストリに外字情報が書き込まれていないからですね。

再び使うには、外字エディタを管理者アカウントで起動しなければなりません。このときに管理者のレジストリの外字情報を読み込んでいるのでしょう。

そうはならないですか?

Posted by sjoe at 2007年08月23日 21:24
一般ユーザーでも再ログオン後に、すぐに外字を使用するためには、一般ユーザーのレジストリにも外字の情報を書き込んでやる必要があります。

これはいまのところ、手動でやるしかないですね。
Posted by sjoe at 2007年08月23日 21:51
検証して頂き、ありがとうございます。
手順が違うからでしょうか?私の環境では、毎日再起動していますが、問題なく使えています。ちなみに、一般ユーザのレジストリには、書き込まれていません。
もう一度、手順を詳細に記載してみます。
1.一般ユーザでログイン
2.スタートボタン⇒コマンドプロンプトを管理者として実行
3.eudceditを起動
4.起動した外字エディタで指定したフォントにリンクする外字をc:\Users\Publicに書き込み
5.管理者ユーザのregeditで確認してフォントのリンクを確認

6.IMEパッドから外字が利用可能を確認

外字は、管理者権限のレジストリを最初に見るのかとずっと思っていましたが、違うのでしょうか。

ちなみに、この外字を他のVista機にコピーするときは、以下の手順でうまくいっています。
1. 一般ユーザでログイン
2. スタートボタン⇒コマンドプロンプトを管理者として実行
3. cpeu falseで外字を停止
4. c:\Users\Public\eudcにフォントをコピー
5. 管理者でregeditを起動し、フォントのリンクを設定
6. cpeu trueで外字を起動
(端末によっては、ログインのしなおしも必要)
7. これで外字が使用可能となりました。

もし他に何か必要な情報などありましたら、お申し付けください。
Posted by つばさ at 2007年08月24日 15:38
ちょっと私も勘違いしていました。全てのユーザにリンクするフォントは再起動してもOKですが、指定したフォントにリンクするフォントは、ログオフすると使えなくなります。(外字エディタを起動したため気づきませんでした)

しかし、ログオフして、ログインした直後は使えない状態ですが、外字を再起動(cpeu false/cpeu true)を行うと、一般ユーザでも使えるように(IMEパッドから指定可能)なります。

一般ユーザでログインした直後は、一般ユーザのレジストリだけ参照し、cpeuを管理者権限で起動したときは、管理者権限のレジストリを参照しているので、使えるようになる。ということですね。
もし、毎回cpeuで外字を再起動しなくてもすむようにするためには、管理者権限のレジストリと同じものを一般ユーザのレジストリに手動でコピーする必要があるんですね。

確かにこの仕様は、変ですね。Microsoftへは、問い合わせ等はされたのでしょうか。
Posted by つばさ at 2007年08月27日 16:26
いや、MSに問い合わせなどはしていません。
なんとも面倒そうで。
正直、個人的にはあまり困っていませんから。
 ただ、vistaの外字に関するMSのドキュメントなんてどこかにあったら、読んでみたいものです。

Posted by sjoe at 2007年08月30日 01:06
MSの件、わざわざコメント頂き、ありがとございます。
外字に関してですが、
「外字サーバ」というソフトの試用版を試して見ましたが、Vistaにも対応していました。指定したフォントにリンクする外字は、ログインユーザのレジストリに書き込まれ、全てのフォントにリンクもログインユーザのレジストリに書き込まれるようです。
http://musashi.or.tv/eudcsvr.htm
クライアントは一般ユーザでも動作しますので、管理者権限にならなくても外字の切り替えができるのは、便利かなと思いました。
参考までです。
Posted by つばさ at 2007年08月30日 14:15
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/3352823
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック