XPモードのカスタマイズ(1)

時々余震で揺れてますが、気にすると負けのような気がするのでフツーに行きます(苦笑)。
XPモードはたしかに便利なんですが、ビミョーに不満もあります。ということで、その不満を解消すべくカスタマイズしてみたので、エントリしてみようと思います。
一番最初に気づくのは、フォントの差。Windows7ではメイリオClearTypeが効いた滑らかな表示が行われていますが、XPモードではMS ゴシックClearTypeの効いていないジャギーな表示になっていて、統合機能でWindows7のデスクトップに表示されるとちょっと違和感を感じます。
メイリオフォントはWindowsXP用にも配布されているので、だいぶ研究されてシステムフォント差し替えの方法などはすでに確立されていますが、実はXPモードにそれをそのまま適用してもうまくいきません。でも、ちょっとした設定をすれば使えるので、まずはそれから行ってみようかと。ちなみに私は、自分でWindows Virtual PCWindowsXPをインストールした「XPモードもどき」で行っていますが、本家のXPモードでも同様に設定できるはずです。

  1. XPモードの起動
     まずはXPモードを起動します。以下、パッチあてや書き換えはXPモード内のWindowsXPに対して行いますので、間違ってホストOS(Windows7)に対して行ってしまうことの無いように気をつけてください。
  2. メイリオフォントのコピー
     エクスプローラでもコマンドプロンプトでも良いので、"\\tsclient\C\Windows\Fonts"フォルダ内にある"meiryo.ttc"と"meiryob.ttc"を、"C:\Windows\Fonts"フォルダにコピーします。もちろんメイリオそのものではなく、メイリオの改造フォント(MeiryoKe等)でも構いませんが、その場合はフォントファイル名やフォント名は適宜読み替えてください。
  3. 視覚スタイル書き換えの有効化
     素のままのWindowsXPだとフォント変更のための視覚スタイル書き換えが出来ないので、パッチあてツールをダウンロードしてきてパッチを当てます。私はUXTenderを使いましたが、どうも本家のサイトではリンク切れでダウンロードできないようなので、適当なサイトからダウンロードしてきてください。Googleで"UXTender"で検索すればすぐ出てくると思います。
     ダウンロードしたzipファイルを展開して"UXTender.exe"を取り出したら、実行して[Patch]ボタンをクリックしてパッチをあてます。ちなみに、元に戻したくなったら、同様に実行して[Unpatch]ボタンをクリックすれば戻すことが出来ます。
  4. 視覚スタイルのフォント書き換え
     視覚スタイルのフォントをメイリオにするため、フォント情報を書き換えるツールをダウンロードしてきます。私はSFCを使いました。ただ、"SFC"で検索するとスーパーファミコン等がヒットしてしまうので(苦笑)、"VSのフォントを一括変更"などのワードでGoogle検索してみてください。
     ダウンロードしたzipファイルを展開して"SFC.exe"を取り出したら、実行して[読み込み]ボタンから"C:\Windows\Resources\Themes\Luna"フォルダの中にある"luna.msstyles"を読み込み、[スタイル名]を"Windows XP スタイル メイリオ"に書き換え(末尾に" メイリオ"を書き足し)ます。
     続いて、[NormalSize]、[LargeFonts]、[ExtraLargeFonts]の各タブを選択し、それぞれ[フォント名一括入力]のプルダウンメニューで[Meiryo UI]を選んでフォント情報を書き換えます。すべてのタブを書き換えたら、[書き込みボタン]から"C:\Windows\Resources\Themes\Luna_meiryo"フォルダ(存在しないので新規に作成する)に"luna_meiryo.msstyles"というファイル名で保存し、[終了]ボタンでSFCを終了させます。
  5. ClearTypeの設定
     XPモードを再起動して、[スタート]→[コントロールパネル(C)]→[画面]と選択して[画面のプロパティ]ダイアログを開き、[デザイン]タブの[ウインドウとボタン(W)]のプルダウンメニューを先ほど書き換えた[Windows XP スタイル メイリオ]に変更します。
     続いて[効果(E)...]ボタンから[効果]ダイアログを開いて[次の方法でスクリーンフォントの縁を滑らかにする(S)]のチェックをONにして、プルダウンメニューは[ClearType]に変更し、[OK]で[効果]ダイアログを、さらに[OK]で[画面のプロパティ]ダイアログも閉じます。
  6. 統合機能有効の状態でのClearTypeの有効化
     この時点で普通のWindowsXPならClearTypeが効くのですが、統合機能が有効な状態のXPモードだとClearTypeが効かずジャギーなフォント表示になってしまいます。統合機能を無効にすればClearTypeが効くようになるのですが、それでは意味がないのでレジストリを変更します。文章で説明すると解りにくいため、このエントリの最後に.regファイルを貼りつけておきますので、そちらを使用してください。
     実はXPモードの統合機能の正体はリモートデスクトップ接続+αなので、このレジストリ(リモートデスクトップ接続時にClearTypeを有効にする)を設定しないと、ClearTypeが効いてくれません。
  7. システムフォントの書き換え
     ここまでの書き換えでだいたいメイリオで表示されるようになっているのですが、まだ少しMSゴシックが残っているので、レジストリを書き換えます。あまりこだわらない人は、この項目はスキップしても構いません。
     なお、この書き換えで、UI以外の場所で使われるMS ゴシックMS Pゴシックまでメイリオに差し替えてしまっている例が多いのですが、ワープロソフトなどでMS ゴシック/MS Pゴシックが使えなくなる(メイリオに変わってしまう)という不具合がありますのでオススメしません(このエントリの例では変更していません)。
     ClearTypeの有効化と同様に文章で説明すると解りにくくなってしまうので、このエントリの最後に.regファイルを貼っておきます。冒頭でも書きましたが、間違ってホストOS(Windows7)側で結合してしまうことのないように注意してください。結合した後、XPモードを再起動すれば変更が有効になっているはずです。
Windows Registry Editor Version 5.00

;統合機能有効時のClearTypeの有効化
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations]
"AllowFontAntiAlias"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"AllowFontAntiAlias"=dword:00000001

;おまけ:ログオン時にもClearTypeを有効化
[HKEY_USERS\.DEFAULT\Control Panel\Desktop]
"FontSmoothing"="2"
"FontSmoothingType"=dword:00000002
Windows Registry Editor Version 5.00

;システムフォントの変更
;SystemLink以下は"MSGOTHIC.TTC,MS UI Gothic"を"meiryo.ttc,Meiryo UI"に書き換え(含まれない場合は先頭に追加)しています。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Lucida Sans Unicode"=hex(7):6d,00,65,00,69,00,72,00,79,00,6f,00,2e,00,74,00,\
  74,00,63,00,2c,00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,00,\
  00,00,00
"MS UI Gothic"=hex(7):6d,00,65,00,69,00,72,00,79,00,6f,00,2e,00,74,00,74,00,63,\
  00,2c,00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,00,00,4c,00,\
  5f,00,31,00,30,00,36,00,34,00,36,00,2e,00,54,00,54,00,46,00,00,00,53,00,69,\
  00,6d,00,53,00,75,00,6e,00,2e,00,54,00,54,00,43,00,2c,00,53,00,69,00,6d,00,\
  53,00,75,00,6e,00,00,00,67,00,75,00,6c,00,69,00,6d,00,2e,00,74,00,74,00,63,\
  00,2c,00,67,00,75,00,6c,00,69,00,6d,00,00,00,6d,00,69,00,6e,00,67,00,6c,00,\
  69,00,75,00,2e,00,74,00,74,00,63,00,2c,00,50,00,4d,00,69,00,6e,00,67,00,4c,\
  00,69,00,55,00,00,00,00,00
"Tahoma"=hex(7):6d,00,65,00,69,00,72,00,79,00,6f,00,2e,00,74,00,74,00,63,00,2c,\
  00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,00,00,53,00,69,00,\
  6d,00,53,00,75,00,6e,00,2e,00,54,00,54,00,43,00,2c,00,53,00,69,00,6d,00,53,\
  00,75,00,6e,00,00,00,67,00,75,00,6c,00,69,00,6d,00,2e,00,74,00,74,00,63,00,\
  2c,00,67,00,75,00,6c,00,69,00,6d,00,00,00,6d,00,69,00,6e,00,67,00,6c,00,69,\
  00,75,00,2e,00,74,00,74,00,63,00,2c,00,50,00,4d,00,69,00,6e,00,67,00,4c,00,\
  69,00,55,00,00,00,00,00
"Microsoft Sans Serif"=hex(7):6d,00,65,00,69,00,72,00,79,00,6f,00,2e,00,74,00,\
  74,00,63,00,2c,00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,00,\
  00,53,00,69,00,6d,00,53,00,75,00,6e,00,2e,00,54,00,54,00,43,00,2c,00,53,00,\
  69,00,6d,00,53,00,75,00,6e,00,00,00,67,00,75,00,6c,00,69,00,6d,00,2e,00,74,\
  00,74,00,63,00,2c,00,67,00,75,00,6c,00,69,00,6d,00,00,00,6d,00,69,00,6e,00,\
  67,00,6c,00,69,00,75,00,2e,00,74,00,74,00,63,00,2c,00,50,00,4d,00,69,00,6e,\
  00,67,00,4c,00,69,00,55,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"@MS Shell Dlg"="@Meiryo UI,128"
"MS Shell Dlg"="Meiryo UI,128"
"MS UI Gothic,128"="Meiryo UI,128"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize]
"GUIFont.Facename"="Meiryo UI"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FontAssoc\Associated DefaultFonts]
"AssocSystemFont"="meiryo.ttc"
"FontPackage"="Meiryo UI"