Windows 起動時に exprorer.exe がフリーズする現象に対処する

Windows を起動してログインするとデスクトップが表示され、カーソルも動くものの画面のどこをクリックしても反応がない状態に陥ることがある。
これは新しいデバイスドライバをインストールした後に発生することが多いようだ。恐らくデバイスドライバがシステムに登録したプロセスとシェルである explorer.exe が通信する際に、デバイスドライバ側プロセスに問題が起こり、デッドロック状態になっているためにデスクトップウィンドウもタスクバーウィンドウもクリックの処理が出来ないのだろう。
実際には explorer.exe の責任ではないのだがそんなに簡単にフリーズするな勘弁してくれ。


望ましい解決手段は当然、問題が解決されたデバイスドライバ、ないしソフトウェアを入手して使用することである。
PC やデバイス、ソフトウェアの製造元のサポートに連絡すると msconfig で常駐プログラムをことごとく切れと言われることもある。
だがそもそも何が原因であるかすら判然としない場合が多く、大体レポートを製造元に投げるのは面倒くさい。金を払ってデバッグしてるというような気分になるのは殊更に苛つく。大抵治らない。
対症療法ではあるが、その場で解決する方法もある。


手動では次の手順でシェルを再起動させる。

  1. Ctrl,Alt,Del キー同時押しで "タスクマネージャ" を起動する。
  2. "プロセス" タブを開き、"explorer.exe" を終了させる。
  3. ウィンドウメニューの "ファイル" から "新しいタスクの実行" を開き、"explorer" と入力して実行する。


自動的に行うには次の手法を用いる。
まず explorer.exe を殺し、実行し直すコマンドを考える。*1

TaskKill /F /IM explorer.exe && start Explorer.exe

次にこれが自動的に実行されるようにレジストリにエントリを追加する。*2

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Reboot explorer.exe"="cmd /C TaskKill /F /IM explorer.exe && start Explorer.exe"

強引だがこれで概ね解決する。根本的な解決になっていないという思いは忘れること。*3

*1:Windows XP Home Edition には taskkill はないらしい。kill すらないのかよ

*2:バッチファイルにしてスタートメニューのスタートアップフォルダに放り込んでも問題ないかもしれないが試していない。

*3:他にはクソッタレな設計の Explorer と離婚して LiteStep に代表される互換シェルを使用するのも悪くない。しかし、それなりに知識を要求されるので安易な手段ではない。