こんにちは、阿久津です。今週からチューニング対象にWindows 7を加え、本連載をお送り致します。しばらくの間はWindows 7が中心となりますが、幅広く各OSのチューニングをお送りしますので、Windows XPやWindows Vistaのユーザーも、Windows 7を導入された方も是非ご覧ください。
さて、Windows 7 Professional以上の上位エディションには、「Windows XP Mode」というWindows Virtual PCと、Windows XP Service Pack 3を仮想化したイメージファイルがセットになった仮想環境が提供されます。同仮想環境のポイントとして数え上げられるのが、Windows Virtual PCのウィンドウ内で動作する"仮想マシン"モードと、Windows XP Modeのアプリケーションを単独で操作する"仮想アプリケーション"モード。Internet Explorer 6やWindows 7で動作しない古いアプリケーションを、Windows 7上でアプリケーションのように動作させることが可能です。
この仮想アプリケーションモードは、ゲストOS(Windows XP Mode: 仮想マシン)側の「%ALLUSERSPROFILE% \ スタートメニュー」フォルダに用意されたショートカットファイルを元に、ホストOS(Windows 7)のプログラムフォルダ(「%APPDATA% \ Microsoft \ Windows \ Start Menu \ Programs \ Windows Virtual PC \ Windows XP Mode アプリケーション」)にショートカットファイルを作成するというもの(図01~02)。
![]() |
図01: 仮想アプリケーションモードを実行するには、一度、仮想マシンを終了しなければなりません。画面のようなダイアログが表示されたら、ゲストOS上の作業データを保存してから<続行>ボタンをクリックします |
興味深いのが、仮想アプリケーションの自動公開タイミング。ホストOS側に作成されたInternet Explorer 6のショートカットファイルを調べてみますと、リンク先は「%SystemRoot% \ system32 \ rundll32.exe %SystemRoot% \ system32 \ VMCPropertyHandler.dll,LaunchVMSal "Windows XP Mode" "||14c0ece8" "Internet Explorer"」となっています。一見しますと、VMCPropertyHandler.dllが持つAPI「LaunchVMSal」を用いてホストOSに公開しているのでしょう(図03)。
そこで気になるのが「14c0ece8」というHEXコード。これは、ゲストOS側のHKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Terminal Server \ TsAppAllowList \ Applicationsキー下で管理されている任意のコードであり、同名を持つキー内に用意された各値の情報を参照し、管理しています。もちろんホストOSのプログラムメニューはゲストOSが未稼働でも動作しなければなりませんので、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ VPCVApps \ Virtual Windows XPキーに作成した情報を元に、クラスIDで作成したファイルを元にショートカットアイコンを実現しているのでしょう(図04~05)。
もう1つのポイントが、自動公開される仮想アプリケーションと自動公開されないアプリケーションの違い。Windows XP Modeには、あらかじめ自動公開しないアプリケーションが決まっており、HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Virtual Machine \ VPCVAppExcludeListキーで管理されています。例えば、Windows Media Playerの実ファイルである「wmplayer.exe」も同キー内にリストアップされているため、「%ALLUSERSPROFILE% \ スタートメニュー」フォルダにショートカットアイコンを用意しても、ホストOSのプログラムフォルダに表示されないのでしょう。そこで今週は、Windows XP Modeが自動公開するアプリケーションを制御するチューニングをお送りします(図06)。
![]() |
図06: 自動公開されないアプリケーションは、ゲストOSのHKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Virtual Machine \ VPCVAppExcludeListキーで管理されています |
まずはWindows XP Modeのファイル名を指定して実行から「regedit」を実行し、レジストリエディタが起動しましたら、HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Virtual Machine \ VPCVAppExcludeListまでキーをたどって開きましょう。続いて<ファイル>メニューから<エクスポート>を選択し、デスクトップフォルダなど任意の場所にVPCVAppExcludeListキーの内容を保存します(図07~09)。
![]() |
図08: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Virtual Machine \ VPCVAppExcludeListまでキーをたどって開き、<ファイル>メニューから<エクスポート>を選択します |
![]() |
図09: デスクトップフォルダなどに任意のファイル名を付けて、VPCVAppExcludeListキーの内容を保存しましょう。画面の例では「VPCVAppExcludeList」というファイル名を付け、<保存>ボタンをクリックしています |
続いて、VPCVAppExcludeListキーの右ペインから、自動公開を許可するアプリケーションの実行ファイル名を持つ文字列値(ここではWindows Media Playerを対象にしていますので「wmplayer.exe」)を右クリックし、メニューから<削除>を選択します。確認をうながすダイアログが表示されたら、<はい>ボタンをクリックしてください(図10~11)。
最後にゲストOSを再起動しますが、事前に自動公開するアプリケーションを登録しておきましょう。<スタート>メニューを右クリックし、メニューから<開く-All Users>をクリックします。フォルダが開いたら、先ほど削除した文字列値と同じアプリケーション(ここではWindows Media Player)のショートカットファイルを作成しておきましょう(図12~13)。
![]() |
![]() |
図12: <スタート>メニューを右クリックし、メニューから<開く-All Users>をクリックします |
図13: フォルダ内に先ほど削除した文字列値と同じアプリケーション(ここではWindows Media Player)のショートカットファイルを作成します |
後はWindows Virtual PCの<Ctrl+Alt+Del>ボタンをクリックして「Windowsのセキュリティ」ダイアログを起動してから、<シャットダウン>ボタンをクリック。「Windowsのシャットダウン」ダイアログが起動しますので、ドロップダウンリストから「シャットダウン」を選択して<OK>ボタンをクリックしてください。これでチューニング完了です(図14)。
ホストOSのプログラムメニューから、<Windows Virtual PC>→<Windows XP Modeアプリケーション>と開きますと、<Windows Media Player(Windows XP Mode)>が作成されていることでしょう。同項目をクリックしますと、ゲストOS内のWindows Media Player 11がWindows 7上で動作可能になります(図15~16)。
![]() |
図15: ホストOSのプログラムメニューから、<Windows Virtual PC>→<Windows XP Modeアプリケーション>→<Windows Media Player(Windows XP Mode)>と選択します |
それでは、また次号でお会いしましょう。
阿久津良和(Cactus)