Written in Japanese(UTF-8)
2020.9.4
INASOFT
2020.9.4
INASOFT
/トップ/すっきり!! デフラグ/ダウンロード/WebHelp/ヘルプトップ/
Diskeeper Liteに対応できない件について
(このページの内容は https://www.inasoft.org/skr/dklite.html のコピーです)ここでは、Diskeeper Liteとすっきり!! デフラグを組み合わせた際の情報について書かれています。
●Diskeeper Liteとは?
サードパーティー(OSの制作元以外)が製作している、オリジナルのデフラグエンジンを持ったデフラグメンタです。
(正確には、Windows 2000以上に付属しているデフラグメンタは、Diskeeperを開発しているメーカーが提供したデフラグエンジンを利用したものであり、Diskeeperの体験版に近いものが利用されています。従って、Diskeeperの方が、Windows 2000/XPに付属したデフラグよりも高機能になっています。例えば、ブートタイムデフラグや、スケジューリング、複数のドライブをまとめてデフラグできます)
Diskeeper Liteというのは、Diskeeperの縮小版で、無料で提供されています。Windows NT 4.0にもインストールできますので、Windows NT 4.0の事実上の標準デフラグメンタと化しているのが現状です。
●Diskeeper Liteの挙動について
Windows 2000以上にDiskeeper Liteをインストールすると、なぜか、Windowsに付属した標準のGUIデフラグメンタ(Dfrg.msc)も書き換えます(Windows XP以上付属のコンソール版デフラグメンタ Defrag.exe や、Windows 95/98/Meのデフラグメンタ Defrag.exe は置き換えません)。
●Diskeeper Liteをインストールすると何が起きるか
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側が不具合を起こして対応できないことがある。
- どうしても動かしたい場合はユーザーの責任の下で行い、作者に助けを求めてはならない。
- なかなか動かない場合は、すっきり実行の方法を変えたり、詳細設定を変えるなどの細かい努力が必要。
ちなみに、LiteではないDiskeeperについては「どうやら動くらしい」のですが、基本スタンスの都合上、例の警告ダイアログは出しますが、しばらく経てば勝手に消えるし、その間にデフラグは進みますので、無視してください。
※このページは、ソフトウェアに付属のヘルプファイルをWeb用に再構築したものです。大部分に自動変換を施しているため、一部は正しく変換しきれずに表示の乱れている箇所があるかもしれませんが、ご容赦下さい。また、本ドキュメントはアーカイブドキュメントであり、内容は、右上の作成日付の時点のものとなっております。一部、内容が古くなっている箇所があるかと思いますが、あらかじめご了承下さい。
※このページへは、自由にリンクしていただいてかまいません。
■このページに関するご意見をお待ちしております → フィードバックページ