Written in Japanese(UTF-8)
2002.10.14
INASOFT
/トップ/ユーティリティとゲーム/すっきり!! デフラグ/Diskeeper Liteに対応できない件について
Diskeeper Liteに対応できない件について
ここでは、Diskeeper Liteとすっきり!! デフラグを組み合わせた際の情報について書かれています。
- Diskeeper Liteとは?
- Diskeeper Liteの挙動について
- Diskeeper Liteをインストールすると何が起きるか
- そういうわけでどんなわけで
サードパーティー(OSの制作元以外)が製作している、オリジナルのデフラグエンジンを持ったデフラグメンタです。
ただ、正確なところをいうと、Windows 2000やWindows XPに付属しているデフラグメンタはDiskeeperのものを利用しています。あえていうなら、Windowsに付属したデフラグメンタは、Diskeeperの体験版です。従って、Diskeeperの方が、Windows 2000/XPに付属したデフラグよりも高機能になっています。例えば、ブートタイムデフラグや、スケジューリング、複数のドライブをまとめてデフラグできます。
Diskeeper Liteというのは、Diskeeperの縮小版で、無料で提供されています。Windows NT 4.0にもインストールできますので、Windows NT 4.0の事実上の標準デフラグメンタと化しているのが現状です。
Windows 2000/XPにDiskeeper Liteをインストールすると、なぜか、Windowsに付属した標準のGUIデフラグメンタ(Dfrg.msc)も書き換えます(Windows XPのコンソール版デフラグメンタ Defrag.exe や、Windows 95/98/Meのデフラグメンタ Defrag.exe は置き換えません)。
Windows 2000では、「すっきり!! デフラグ」はDfrg.mscを呼び出そうとします。
ところが、Diskeeper Liteがインストールされていると、Dfrg.mscは改変されているわけですから、すっきり!! デフラグはデフラグメンタをうまくコントロールできないことがあります。
「できないことがある」 … 特定の環境において「できたり」「できなかったり」することもあれば、1つの環境では「でき続ける」のに、他の環境では「できないことが続く」こともあります。
これはほとんどの場合、Diskeeper Liteが起動時に表示する広告が原因になっています。現行のバージョンでは、これに邪魔され、デフラグ自身をアクティブ化できません。また、仮に広告の影響を受けなかったり、広告を閉じることができたとしても、Dklite.mscの問題により、すっきり実行ができないことがあります。
というわけで、Windows 2000の利用者に協力をお願いし、Ls.exeを対応させるテストを行いました。
ところがこの広告ウィンドウは、DestroyWindows()やWM_DESTROYメッセージを受け付けません。どうやら「人間が広告を読むまで閉じない」「他のプログラムによる自動処理をさせない」ような機構がDiskeeper Liteに備わっているようです。
しかたなく、13秒間のウェイトを置いてから、キーボードエミューレートで Alt+F4 を送って広告ウィンドウを閉じさせることにしたのですが…。
今度はなんと、こんな画面が出てきました。

おそらくスレッドが暴走
[Analyze], [Defragment Now], [Pause], [Stop] のすべてのボタンがDisableになっていて、しかも、いつまで経ってもAnalyzingが始まらないところからみて、おそらく、Diskeeperのデフラグ用のスレッドが暴走しているものと思われます。
このあと、「すっきり実行の方法」で「シェル起動前に実行」または「すっきり実行しない」を選んだらうまく動いたので、どうやらシェル入れ替えだと動いてくれないっぽいことがわかりました。
しかしまぁ、そもそもDiskeeper LiteにもDiskeeperにも対応していないというのがタテマエですので、今回の実験でDiskeeper Lite/Diskeeper(英語版)を検出する方法もわかりましたし、すっきり実行時に(時間が経ったら自動的に消えるような)警告ダイアログでもつけようかと検討中です。
というわけで、現在は次のような状況になっています。
- すっきり!! デフラグは、Windowsに付属したデフラグ・スキャンディスク(チェックディスク)以外には、そもそも対応していない。
- Diskeeperの場合、対応しようとしても、Diskeeper側が不具合を起こして対応できないことがある。
- どうしても動かしたい場合はユーザーの責任の下で行い、作者に助けを求めてはならない。
- なかなか動かない場合は、すっきり実行の方法を変えたり、詳細設定を変えるなどの細かい努力が必要。
というわけで、対応しないのが基本スタンスで、対応しようと努力してもムダだったってあたりで、どうしても動かない場合は、Diskeeper(Lite)か、すっきり!! デフラグのどちらか一方は使用をあきらめていただくということを覚悟していただければと思います。
ちなみに、LiteではないDiskeeperについては「どうやらうごくらしい」ことがわかっているのですが、基本スタンスの都合上、例の警告ダイアログは出しますが、1分経てば勝手に消えるし、その間にデフラグは進みますのでちゃんと動く限りは無視してもらってもけっこうです。
そんなLs.exe(すっきり!! デフラグの実行部ファイル)の新バージョンは、次の4.10.04βから付属される予定です。
でもこういう基本スタンスを無視して、機能追加要望とか寄せるのは止めてねというお話でした。
/トップ/ユーティリティとゲーム/すっきり!! デフラグ/Diskeeper Liteに対応できない件について