M.F.O.R. は,今すぐにはリネームしたり消せそうにないファイルを,パソコンの再起動時にリネームや削除するように予約するツールおよび開発者向けモジュールを提供します。
WindowsNT,2000 および XP ならば MoveFileEx() という API (OS が備えている機能) で簡単にそのように予約する事が出来ます。しかし Windows95,98 および Me では Windows ディレクトリ に wininit.ini という設定ファイルを記述してやらなければなりません。M.F.O.R. は特にその作業を自動化します。
大きい改変の無い限り,告知なく少しずつアップデートされていきます。アプリケーションを起動すると大抵 "Build ID" が記載されているので,参考にして下さい。

「M.F.O.R. / Front End Agent ver.0.1 [必要最低限版・ポロリもあるよ!]」(以下,Mfor Fea) は,M.F.O.R. の提供する MoveFileOnReboot() API を利用し,OS 再起動時にファイルを削除するように予約します。スパイウェアが勝手に仕込んだファイルなど,今すぐに消せそうにないファイルを消す事が出来ます。
小さな実行ファイルなので持ち運びに便利。また,どのディレクトリからでも,ファイル名を変えても (※1) 問題なく動きます。
使用している DLL は ADVAPI21.DLL,GDI32.DLL,KERNEL32.DLL,MSVCRT.DLL (※2), そして USER32.DLL のみ (※3)。どんなに致命的な状態でも,なんとか Windows が動いているなら Mfor Fea も動く?かも?
開発者が自由に MoveFileOnReboot() 機能を使えるよう,驚異的に緩いライセンスでソースコードを公開しています。
※1 スパイウェアの中には,駆除ツールのファイル名を察知して駆除作業を妨害するものも知られています。
※2 実際には MSVCRT.DLL の中の機能は使用していません。あなたが Mfor Fea をビルドするなら --nomsvcrt でこの依存を外せるかも知れません。
※3 Dependency Walker 調べ。
mfor_fea.exe をダウンロードして下さい。特別なインストール作業は必要ありません。
現在のファイル名は mfor_fea.exe ですが,どんなファイル名に変更しても動作します。使うたびにディレクトリを変えたって大丈夫です。
mfor_fea.exe ファイルを削除して下さい。特別なアンインストール作業は必要ありません。Mfor Fea 固有のレジストリはありません。
重要:アンインストールを行っても,Mfor Fea で削除しようと予約したファイルについて,予約をキャンセルする事は出来ません。→削除予約を解除するには?;
「エクスプローラ」などのファイラから,削除したいファイルを mfor_fea.exe にドラッグ & ドロップします。
「エクスプローラ」で削除したいファイルを見つけ,マウスの左ボタンを押します。
※ 画像が小さく表示されている場合,クリックすると拡大します。
左ボタンを押したまま,mfor_fea.exe のアイコンまでドラッグします。
※ イメージは WindowsMe のものです。赤い矢印は実際には表示されません。
ダイアログが出ます。ファイルの削除の予約をしてよければ「はい」ボタンを,何もしないならば「いいえ」ボタンを押して下さい。

コマンドプロンプトから起動する事も出来ます。
(TODO: 詳しい解説を記述)
あちこちにショートカットを作ります。
間違えて大事なファイルを削除予約してしまった場合,マシンを再起動する前に予約を取り消さなければなりません。
(TODO: より詳しい説明をここ (もしくは別リソース?) に記述)
通常,多少規模の大きいアプリケーションは,機能ごとにファイルを分割しています。アプリケーションの核となる部分 (Windows では一般的に“EXE ファイル”と呼ばれます) を私たちが起動し,分割されたその他のファイル (Windows では一般的に“DLL ファイル”と呼ばれます) は必要に応じて EXE ファイルがロードし,機能を呼び出します。そうする事で EXE ファイルの起動時間を短くできたり,メモリの消費を節約できたりするのです。
EXE ファイルが DLL ファイルの機能を使っている間,Windows は,DLL ファイルが削除されたり名前を変えられたり,別のファイルで上書きされたりしないように保護します。この時に私たちがその DLL ファイルを削除しようとしても,Windows は削除してはくれません(※1)。
最近「スパイウェア」が私たちを悩ませています。ブラウザの脆弱性を悪用し,とてもうざったいアプリケーションを勝手にインストールしてしまうのです。それらの目的は特定の Web サイトに強制的に誘導し,アクセス数を稼いだり広告を見せつけたりする事。そしてブラウザがより強固なセキュリティを備えるにつれ,それらも,(私たちにとって) より厄介な手法を探してスパイウェアを植え付けるようになりました。たとえば,Internet Explorer をより便利にする仕組み「プラグイン」の形をとって……その「プラグイン」こそがいわゆる DLL ファイル (※2) であり,簡単には削除できない厄介なファイルの一つです。
私たちプログラマが Windows で簡単にウィンドウを表示できたりするのは,Windows が便利な機能を提供してくれるから。そんな感じのノリで,Microsoft 社は Windows98 を作った時,Web コンテンツも簡単に表示できるように Internet Explorer を Windows 標準の機能として取り込みました。これにより Donut ファミリーや Sleipnir など,Internet Explorer を利用したいくつもの素晴らしい Web ブラウザが作られる事になりました。
今や Windows は,私たちのプログラムが自由にそれを使えるように,そして何より Windows 自身がよく使うため,常に Internet Explorer を「ほぼ起動させた状態」で待機させています。運悪くスパイウェアを植え付けられてしまっている場合,もしかしたらスパイウェアの DLL ファイルも既にロードされているかも知れません。── Windows は,起動してから終了するまでずっと,この厄介な DLL ファイルが削除されないように保護し続けるのです。(※3)
※1 新しいアプリケーションやサービスパックをインストールすると再起動が必要になったりしますが,Windows のこの仕様が主な原因です。ですよね?
※2 拡張子は .dll ではなく .ocx の場合もありますが,基本は変わりません。
※3 Microsof 社の名誉のために付け足しておくと,決して Windows が特別にダメダメなのだとは言えません。UNIX も Linux も MacOS も,ユーザが多くなれば厄介な問題が出てくるはずです。これでも Microsoft 社はかねてからの批判に応え,ユーザからのフィードバックに敏感になった……気がします (根拠はありませんが)。
オンラインソフトを作成されている杉山利幸さんのサイト。M.F.O.R. と同様の機能を持つ Reboot File Deleter が公開されています。
おっと,Readme.txt に重要な情報発見。氏によると
(Windows 95,98,Me では) フルパス名に2バイト文字が使われている場合うまくいかないことがあります。これも Windows の仕様(MSDN J056531)です。
との事。これは M.F.O.R. でも発現するのでしょうか? どのような条件で? 一般に「ソ」「十」「能」などを含むパス名の取り扱いは慎重でなければなりません (いわゆる「0x5c 問題」) が,テストして見たところ,それは関係ないようです。ちーと不安です。
nao4u ブランド,chocotto ブランドのソフトを配布しているサイト。naoDeleteFilesOnReboot が公開されています。Mfor Fea のインタフェースはこれをパクりました。すいません。
武千代さんのサイト。「強削」で厄介なファイルを削除できるかも知れません。
ファイル削除の定番ツール「KillBox」を入手できます。
2004-09-13 Mfor Fea 公開