Windows 秘話: アンインストールにまつわる伝説

プログラムのインストールやアンインストールのような簡単な処理を行う場合でも、Windows では、プログラムのサイズや日付などの情報を確認する必要があります。

Raymond Chen

プログラムをインストールおよびアンインストールするときには、バックグラウンドで多くの処理が行われています。コントロール パネルのプログラムと機能では、プログラムのサイズやインストールした日付を把握するために、どのような処理が行われるのでしょうか。この機能は、さまざまな変化を遂げてきました。

Windows 95 では、アプリケーションの追加と削除と呼ばれるコントロール パネル アプレットが導入されました。当初、このアプレットでは、アンインストーラーが登録されているプログラムの一覧が表示されるだけでした。ユーザーがプログラムのアンインストールを要求すると、登録されているアンインストーラーが実行されました。これはまったく複雑な処理ではありませんでした。

Windows 95 のリリース以降に実施したユーザー調査により一部のユーザーが抱えている問題が明らかになりました。ユーザーは、ハード ドライブに空き領域がなくなると、プログラムをアンインストールして空きディスク領域を増やす必要がありました。ただし、既存のアプリケーションの追加と削除アプレットの一覧は、アンインストールすべきプログラムを特定するのに、あまり役立ちませんでした。また、一覧に表示されるプログラムの名前だけでは、そのプログラムをアンインストールせずに残しておく価値があるかどうかを判断するには必ずしも十分ではありませんでした。

名前、ランク、およびシリアル番号

Windows 2000 では、ユーザーが十分な情報に基づいた決定を下すことができるように、アプリケーションの追加と削除アプレットの一覧には、問題解決につながる数多くの機能が追加されました。ユーザー調査から、プログラムのインストール日時、プログラムで使用されているディスク容量、およびプログラムの使用頻度を把握できると、ユーザーがアンインストールするプログラムを判断するうえで非常に役立つことがわかりました。これは有益な情報ですが、どのようにして取得するのでしょうか。

アンインストールに関する情報を登録するときに、プログラム側で指定する必要があったのは、プログラム名とアンインストーラーのパスだけでした。それでは、これ以外のすべての情報はどのようにして取得されるのでしょうか。

プログラムでは、アンインストールに関する情報を登録するときに、インストール日時とプログラムのサイズを書き込むこともできました。ですが、プログラムでこれらの情報が提供されなかった場合はどうなるでしょうか。また、プログラムの使用頻度に関する情報についてはどうでしょうか。

このような問題に対処するため、アプリケーションの追加と削除アプレットでは、推測処理に乗り出す必要がありました。その結果、アンインストールできるように登録されている各プログラムについて、スタート メニューのショートカットをすべて確認し、アンインストール項目の名前と部分的に一致する単語が含まれているショートカットを探すようになりました。

たとえば、アプリケーションの追加と削除アプレットで "Windows のすばらしいプログラム" というプログラムを検索しているときに、"Windows の非常に優れたプログラム" という名前のスタート メニューのショートカットが確認された場合、2 つの単語が一致していると見なされます。つまり、プログラムとショートカットの両方に "Windows" と "プログラム" という単語が含まれています。アプリケーションの追加と削除アプレットでは、一致する単語の数が最も多い名前が選択されます。2 つ以上の単語が一致した場合、そのショートカットの使用頻度がプログラムの使用頻度として見なされます。

推測処理

プログラムのアンインストールに関する情報に、インストール日時やプログラムのサイズについての情報が含まれていない場合、さらに推測処理を行う必要があります。アプリケーションの追加と削除アプレットでは、スタート メニューの場合と同じような方法で、すべてのドライブの Program Files ディレクトリを検索します。プログラム名と同じ単語を 2 つ以上含むディレクトリ名を探します。そのようなディレクトリが見つからなかった場合は、すべてのドライブのルート ディレクトリを検索します。

一致すると見なされたディレクトリのサイズが、プログラムのサイズになります。また、ディレクトリの作成日がプログラムのインストール日時と見なされます。アンインストール項目の一部としてプログラムのインストール日時とプログラムのサイズを登録するだけで、このようなディスクの検索を回避できるので、覚えておいてください。

アプリケーションの追加と削除アプレットで提供される情報の信憑性が低いことを知っていれば、これらの情報源として、アプレットを使用することに、あまり興味を持たなかったでしょう。ですが、最近使用していないプログラムを自動的にアンインストールできるように、各プログラムの最終使用日の情報を入手する方法を知りたいというユーザーがいました。これは、隣のスケートボード場で遊んでいる子供に今晩やらなければならない宿題の量をたずねた場合の回答より、少しだけ信頼できるに過ぎません。

アプリケーションの追加と削除 (Add/Remove Programs) アプレットは、Windows XP で外観に変更がありましたが、基盤となる機能は変化しませんでした。ほとんどのユーザーが気付かなかった変更点が 1 つあります。それは英語版でアプレットの名前からスラッシュが削除されたことです。Windows XP では、このコントロール パネル アプレットの名前が、プログラムの追加と削除 (Add or Remove Programs) になりました。

Windows Vista では、プログラムの追加と削除アプレットに大幅な変更が加えられました。コントロール パネル アプレット固有のウィンドウではなく、従来のエクスプローラー ウィンドウのように表示されるようになりました。変更の一環として、また名前が変わり、今度は "プログラムと機能" になりました。

他にもわずかな変更がありました。使用頻度が表示されなくなりました。使用頻度に関する情報が表示されなくなったため、その情報を計算するための処理が必要なくなりました。そのため、スタート メニューの検索処理も不要になりました。

検索処理の廃止

Windows 7 では、最後まで残っていたディスクの検索処理も廃止されました。プログラムでインストール日時が登録されていない場合、インストール日時は、登録情報の作成日時から推測されます。プログラムで推定サイズが登録されていない場合は、単純に、サイズの列が空欄になります。

サイズに関する情報は、コントロール パネルのプログラムと機能から徐々に削除された理由を説明しましょう。この機能が Windows 2000 で初めて導入されたとき、ハード ドライブのサイズは、現在の標準サイズに比べると小規模でした。そのため、ハード ドライブに空き領域がなくなることが、ストレスの主な原因となっていました。時間の経過と共に、ハード ドライブの容量は飛躍的に増加したので、ディスクの容量不足は、今となっては、標準的なユーザーが直面する可能性の高い問題ではありません。

1998 年にマイクロソフトが TerraServer を公開したとき、だれもが 1 TB のディスク容量という発想に驚いたことを覚えていますか。このデータ (約 3 TB) をすべて格納するには、7 つのストレージ キャビネットに収納された 324 台のハード ドライブが必要でした。現在では、約 100 ドルで 1 TB のハード ディスクを購入することが可能で、それはちょうど手の平に収まる大きさです。

Raymond Chen

Raymond Chen は自分の Web サイト「The Old New Thing」および同じタイトルの書籍 (Addison-Wesley、2007 年) で、Windows の歴史、Win32 プログラミング、そして月餅と地下経済について触れています。

 

関連コンテンツ