Windows XP 上で Word 2007 を使用していたら、突然Wordの編集画面が真っ白になって、何も表示されなくなることがありました。
●再現条件
Word上で画面の表示倍率の拡大縮小操作を繰り返していると再現する。
OS: Windows XP
アプリ: Word 2007
●原因
usp10.dll (日本語を表示する機能)内の処理の影響を受けて、フォント情報のキャッシュが
開放されず、ページファイル(仮想メモリー)が満杯になってしまうことが原因。
●対策
usp10.dllは異なるバージョンが複数のフォルダに存在する。
System32フォルダ内に存在するusp10.dllは、上記問題を起こさないので、これのみを使用するよう、
レジストリを書き換える。
コマンドプロンプト画面で以下のコマンドを実行するとレジストリに設定される(長いので、改行してますが、1個のシーケンスです)
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDLLs" /v usp10 /d usp10.dll /f
【意味】
KnownDLLsとして登録されているDLLは、system32フォルダのみが検索されることになっている。ここに usp10.dll を登録する。これにより、system32フォルダを最優先で検索し、system32内に該当ファイルがもし見つかれなければ、通常ルールでの検索に切り替わる。
KnownDLLsに登録されたファイルの検索先は、同KnownDLLsの中に DllDirectory として登録されています。
その内容はデフォルトで、 %SystemRoot%\system32 となっています。誤ってここを変更してしないようにしてください。変更するとシステムの動作が鈍くなったり障害が発生します。
ちなみに、レジストリに設定した内容を確認するには、以下のコマンドを実行します。
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDLLs" /v usp10
●レジストリ自動書き換え
WindowsXPのPCを何台も処置しなければならなかったので、バッチファイルを作りました。
(といっても、上記のコマンドがテキストファイルになっただけですが・・・)
以下に登録しましたので、ダウンロードできます。
ダウンロード ←このテキストファイルの拡張子を"bat"に書き換えて実行すればOKです。
●参考