2011/06/14

[Windows 7] ファイルの関連付けが壊れる

とあるアプリケーションが利用するファイルの関連付けがおかしくなった。そのファイルをダブルクリックすると、Explorer.exeプロセスが、大量に生成されてしまうのだ。連続的に生成されるので、タスクマネージャからの強制終了は、ぜんぜん間に合わない。脱出するには、ログオフするしかない状況。

最初は、そのファイルの関連付けの設定がおかしくて、ダブルクリックしてもアプリケーションが起動しないという状況。調べてみると、ダブルクリックで起動するアプリケーションに渡すパラメータの設定に誤りがあった。具体的には、レジストリのHKEY_CLASSES_ROOT\application\shell\open\commandの起動コマンドが誤っていた。command.exe %1と記載されていたのだが、正解はcommand.exe "%1"としなければ、ダブルクリックされたファイルのパス名にスペースが入っていると、アプリケーションが起動しない。

このレジストリを直したときに、ファイルの関連付けを、何か間違えて設定したらしい。よく覚えていないのだが、コントロールパネルの既定のプログラムのファイルのプログラムへの関連付けを操作したか、何かしたか。。

とにかく、よく覚えていないが、そのファイルをダブルクリックすると、Explorer.exeプロセスが大量起動するようになってしまった。

調べてみた結果、こうなった原因はよくわからないが、解決策は見つかった。

"Windows 7 Hangs When Opening a File with Explorer.exe"によれば、ファイルをオープンする既定のプログラムがExplorer.exeに設定されてしまい、その解除がGUIからはできなくなってしまうとのこと。

具体的には、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExtsの下に、ファイル拡張子毎にファイルをオープンするためのプログラムが定義されている。ファイルを右クリックした時に表示されるコンテクストメニューの、「プログラムから開く」を選択したときに表示されるプログラムが定義されている。この拡張子のキーの下に、"UserChoice"というキーができて、ここにExplorer.exeと書かれているのだ。

この状態になると、プログラムの関連付けの拡張子ごとのリストにその拡張子が表示されなくなり、ファイルのプロパティシート内のプログラムの変更ボタンが表示されない。よって、ファイルを関連付けを編集できない状態になってしまう。かつ、Explorer.exeが起動して、なぜか大量に起動する。

解決方法は、UserChoiceキーを削除すること。これで、何事もなくなる。

問題は、どうしたらその状態になるのか。。。。

2 件のコメント :

  1. 私も同じ症状で困っていました。
    このサイトを見つけて試してみたところうまくいきました。
    本当に本当にありがとうございました!

    返信削除
  2. ある拡張子の起動プログラムをエクスプローラーに変えたら、
    その拡張子のダブルクリックで開かなくなり、元に戻そうとしましたが、プロパティ画面に起動プログラムの「変更」ボタンが表示されず、困っていました。
    このサイトの手順を実施したら、「変更」ボタンが表示され、復旧できました。
    ありがとうございました。

    返信削除