2012年9月22日土曜日

ファイル選択ダイアログを開くとフリーズ(反応無し)になる元凶を見つけたよ

はじめに

最近、新マシンを新調し、環境構築をせっせとしているのだが、Exact audio copy (EAC) や Chrome などで、ファイル選択ダイアログを開くと、選択しても、しなくても、×ボタンで閉じたときでさえ、毎回フリーズして、アプリケーションが、応答しなくなったり、強制終了となる事象が発生して困っていた。
今日、その元凶が判明したので、さらしておく。

注意事項

今回の手順を実行すると、最悪で、起動不能になる場合もありえる。
実施は、くれぐれも自己責任で。

動作環境

Windows7 Professional 64bit SP1
CPU:AMD FX(tm)-8150 Eight-Core
メモリ:16GB

原因特定に利用したソフト

ShellExView
システムにインストールされている、シェルエクステンション(シェル拡張)を、一覧表示して、個別に機能を有効・無効化できるソフト。

元凶

DAEMON Tools Pro (DT Soft Ltd)

シェル拡張名:Image Catalog
バージョン: 4.40.0312.0221
ファイル:D:\appli\DAEMON Tools Pro\DTShl64.dll
ファイルサイズ:696,128 バイト

TortoiseSVN

バージョン:1.7.9-64bit

TortoiseGit

バージョン:1.7.12.0-64bit

特定方法

同様の現象を Google 先生に問い合わせると、どうやら腐ったシェルエクステンション(シェル拡張)が、原因なことが多いとか。
であれば、アヤシイものを、片っ端から無効にして、確かめるしかない。
そこで ShellExView の登場である。

実際の使用方法は、いたって簡単。
無効化したいものを選択し、右クリックしてコンテキストメニューから「Disable Selected Items」を、選択する。ただし、Microsoft のものは、避けたほうがいい。Microsoft 以外のものは、背景がピンク色になっているもので、一覧の「Microsoft」項目が「No」になっている。
再起動して、現象が発生するかを確かめる。
以上。

対処方法

DAEMON Tools

元凶を無効化する。

TortoiseSVN

設定を開き、「アイコンオーバーレイ」を選択。
「アイコンオーバーレイ/状態表示列」で、「エクスプローラー上でのみオーバーレイとコンテキストメニューを表示」チェックボックスにチェックを付ける。

TortoiseGit

TortoiseSVNと同様の対処を行っても、改善されず。
シェルエクステンションの無効化しかないかも。
でもそれだと、インストールする意味がまったくないよ。

愚痴

率直に言うと、「またおまえか!」って感じです。ほんとに、DAEMON Tools には、マルウェア騒動以来、悪いイメージしかない。
バンドル版なので、アップデートもできないし、アップデートダイアログで表示される、金払って延長しろってボタン以外、×ボタンも閉じるボタンも、数秒間無効化されて押せないし。
ほんっっっとに、感じ悪い。そういうメンタルは、有料版ユーザに対しても、変わるとは思えない。
腹が立ってきたので、アンインストールすることにする。
こういう下種な小細工は、競合がいない場合にのみ、有効なんだよ。
同じ金を払うなら、平均より上の別のソフトにするに決まってる。

と、悪態をついてはみたが、SVN 64bit版や Git 64bit版などのシェルエクステンションを使用しているものが、けっこう駄目になっていることを考えると、Windows7 が悪い気がしてきた。しかも 64bit 版特有の問題かもしれない。仕事場で使っている Windows7 32bit 版では、問題が起きていないし、 Vista 64bit 版 SP2 でも、こんなことはなかった。
現象から察するに、ファイルエクステンションや、ファイル選択ダイアログの仕様が変わってるのかもしれない。
しかし、いくらなんでも、アプリもろとも強制終了とか、ありえないと思う。
やっぱり Windows の SP1 は、ベータ版ってことだね。