こんにちは、阿久津です。東芝が発表した、コンシューマー向けPC事業の縮小には索漠とした思いを覚えました。東芝といえば、独自に日本語化した初期のPC/AT互換機「DynaBook J-3100SS」や、小型Windowsマシンの名機「Libretto (リブレット)」などを生み出してきた歴史があります。個人的には8ビットPCの「PASOPIA (パソピア)」シリーズも懐かしいアイテムの一つです。

今から10年前となる2004年、IBMは"パーソナルコンピュータ事業部"をLenovoに売却しました。先見の明を評価しつつも長年コンシューマーPCの世界で生きてきた筆者としては、もの悲しさが残ります。

さて、Windows NT時代から続くチューニングとして、エクスプローラーを別プロセスで実行可能にする、というものがありました。フォルダーオプションにある<別のプロセスでフォルダーウィンドウを開く>を有効にしますと、本来はデスクトップやタスクバーといったExplorer.exeが担う役割が分離し、「タスクマネージャー」の<詳細>タブで確認すると少なくとも2つ以上のプロセスが並ぶようになります(図01~03)。

図01 フォルダーオプションの<別のプロセスでフォルダーウィンドウを開く>にチェックを入れます

図02 こちらはチェックオフの状態。Explorer.exeは単一のプロセスで稼働します

図03 こちらはチェックオンの状態。Explorer.exeが複数のプロセスで稼働します

このチューニングを行う際に用いられてきたのが、TechNetでも紹介しているDWORD値「DesktopProcess」です。本来はHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorerキーに同DWORD値を作成することで、<別のプロセスでフォルダーウィンドウを開く>を有効にせずとも分離しました。

本チューニングのメリットは、エクスプローラー側やタスクバーに何らかの悪影響を及ぼしてExplorer.exeがハングアップしても、他のエクスプローラーをそのまま使用可能にするというもの。デメリットとしてCPUへの負荷とメモリー使用量が増えますが、現在のPCであれば気にする必要はありません。

最近も海外のWindowsチューニング系サイトで紹介されていましたが、ここで筆者の脳裏を横切ったのは、「本当にWindows 8.1でも有効か?」という点です。

<別のプロセスでフォルダーウィンドウを開く>を有効にした際のレジストリエントリは、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AdvancedキーのDWORD値「SeparateProcess」。データが「0」の場合はチェックオフとなり、データが「1」の場合はチェックオンとなります。そこで、DWORD値「DesktopProcess」とDWORD値「SeparateProcess」のデータを変更しながら、動作を検証してみました(図04~05)。

図04 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ExplorerキーにDWORD値「DesktopProcess」を作成し、データを「1」に変更しました

図05 さらに<別のプロセスでフォルダーウィンドウを開く>をチェックオンした状態とするため、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AdvancedキーのDWORD値「SeparateProcess」のデータも「1」に変更しました

すると、DWORD値「DesktopProcess」の状態に関わらず、DWORD値「SeparateProcess」のデータが「1」の場合のみ、Explorer.exeのプロセス分離を確認した次第です。さらにWindowsの各バージョンですべてのファイルを対象に文字列を抜き取り、システムファイルなどからレジストリエントリを参照しているか否かを調べましたが、こちらでもDWORD値「DesktopProcess」を参照しているのはWindows 7まで。Windows 8/8.1では確認できませんでした。

加えて「Process Monitor」を使用し、各エントリを参照しているか調査しましたが、結果は同じです。レジストリエディターで何らかの片鱗があるか検索してみましたが、ヒットするのはフォルダーオプションの項目を列挙するために用意している、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folderだけでした(図06~07)。

図06 「Process Monitor」でDWORD値「DesktopProcess」を参照しているか確認してみましたが、その気配はありません

図07 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folderキーの下には、フォルダーオプションの設定項目が並びます

これらのことから、Windows 8.1におけるエクスプローラーのプロセス分離はDWORD値「SeparateProcess」で処理し、DWORD値「DesktopProcess」は使用できないという結論に達しました。前述のとおり<別のプロセスでフォルダーウィンドウを開く>はダイアログから設定できますが、念のためレジストリエディターからの変更手順を紹介します。

1. 管理者権限でレジストリエディターを起動します。
2. レジストリエディターが起動したら、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advancedキーを開きます。
3. DWORD値「SeparateProcess」を開き、データを「1」に変更します。
4. レジストリエディターを終了します。
5. エクスプローラーを再起動します。

これでチューニングが完了しました(図08~14)。

図08 [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力して<OK>ボタンをクリックします

図09 レジストリエディターが起動したら、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advancedまで、キーをたどって開きます

図10 右ペインにあるDWORD値「SeparateProcess」をダブルクリックし、データを「1」に変更してから<OK>ボタンをクリックします

図11 <×>ボタンをクリックして、レジストリエディターを終了します

図12 タスクバーの何もないところを[Shift]+[Ctrl]キーを押しながら右クリック。メニューの<エクスプローラーの終了>をクリックします

図13 [ESC]+[Shift]+[Ctrl]キーを押してタスクマネージャーを起動し、<ファイル>メニュー→<新しいタスクの実行>とクリックします

図14 テキストボックスに「explorer」と入力して<OK>ボタンをクリックします

では、結果を確認してみましょう。タスクバーのボタンをクリックするなどして、エクスプローラーを起動してください。これでエクスプローラーのプロセスが分離した状態で稼働していることを確認できます(図15)。

図15 新たにエクスプローラーを起動しますと、別プロセスで稼働したことを確認できます

それでは、また次号でお目にかかりましょう。

阿久津良和(Cactus