共用方式為


Windows 機密: 卸載功能的傳奇故事

即使只是執行安裝或解除安裝這麼簡單的動作,程式還是會要求 Windows 找出應用程式大小和日期等這類資訊。

Raymond Chen

在安裝和卸載程式時,後臺進行了大量操作。 “程式和功能”從何處獲得應用程式大小和安裝日期等資訊? 目標位置始終不定。

Windows 95 推出了名為“添加/刪除程式”的控制台功能。 最初,此功能僅僅提供了一個清單,列出註冊了卸載程式的應用程式。 當您要求卸載程式時,Windows 就會運行註冊的卸載程式,這種機制相當簡單。

在 Windows 95 之後,使用者調研發現有些使用者會遇到一個問題。 他們的硬碟可能會被耗盡,因此他們希望卸載應用程式以便釋放硬碟空間。 但是,現有的“添加/刪除程式”清單無法指出哪些程式應該卸載。 清單中顯示的應用程式名稱並不總是能説明使用者判斷該應用程式是否值得保留。

名稱、排名和序號

在 Windows 2000 中,Microsoft 向“添加/刪除程式”清單中增加了大量資訊,説明使用者做出更明智的決定。 使用者調研發現,應用程式的安裝日期、它佔用的磁碟空間量以及使用者使用它的頻率對使用者決定要卸載哪些程式的説明最大。 這些資訊很有説明,但是如何獲得這些資訊呢?

當應用程式註冊卸載項時,只需提供應用程式的名稱和卸載程式的路徑。 那其他資訊來自何處呢?

當應用程式註冊卸載項時,它們可以選擇寫入安裝日期和應用程式大小。 但如果應用程式不提供這些資訊,怎麼辦呢? 又該如何獲得應用程式使用資訊呢?

“添加/刪除程式”功能不得不開始猜謎。 對於每個註冊了卸載項的應用程式,“添加/刪除程式”功能將查看“開始”功能表上的所有快捷方式,查找快捷方式名稱中與卸載項名稱相符的字詞。

例如,如果“添加/刪除程式”功能正在查找“Awesome Program for Windows”,並且找到了名為“Pretty Good Program for Windows”的“開始”功能表快捷方式,會認為其有兩個詞匹配。 “Program”和“Windows”在兩者中都出現了。 “添加/刪除程式”功能隨後會選擇匹配數最多的名稱。 如果匹配數不低於 2,它就會使用該快捷方式目標的使用頻率作為要卸載的應用程式的使用頻率。

猜謎遊戲

如果應用程式的卸載資訊中不包含安裝日期和應用程式大小資訊,則猜謎遊戲將繼續下去。 “添加/刪除程式”功能將搜索所有驅動器上的“Program Files”目錄,其方式與搜索“開始”功能表相似。 它會查找目錄名中至少有兩個詞與應用程式相符的目錄。 如果仍然找不到,它會在所有驅動器的根目錄中查找。

最後,此功能將根據找到的最相符的目錄來確定該應用程式的大小, 而該目錄的創建日期則作為該應用程式的安裝日期。 請記住,您可以通過在卸載項中註冊應用程式的安裝日期和大小,使 Windows 不再執行這種磁片搜索。

如果更多的使用者瞭解到“添加/刪除程式”控制台功能有多麼不可靠,他們就會對它提供的這些資訊興趣缺缺。 最近,有位客戶希望知道如何獲得每個應用程式的“最近使用日期”資訊,以便自動卸載最近未使用過的程式。 這種資訊的可靠性不過比在附近的滑板公園裡詢問一位少年他今天有多少家庭作業稍微強點。

“添加/刪除程式”控制台的外觀在 Windows XP 中有所變化,但基本功能仍然是一樣的。 大多數使用者未曾注意到的一個變化是斜杠消失了。 該控制台功能的名稱變成了“添加或刪除程式”。

而在 Windows Vista 中,“添加或刪除程式”控制台功能的外觀有了更實質性的改變。 它不再是一個自訂控制台功能,而更像是傳統的資源管理器視窗。 而伴隨著此項變化,其名稱也再一次改變了,這一次變成了“程式和功能”。

還有另一項細微的更改: 它不再顯示“使用頻率”。 而由於它不再顯示“使用頻率”,Windows 也就不再需要執行上述那些計算。 因此也就不再需要搜索“開始”功能表。

不再搜索

在 Windows 7 中,磁片搜索最終消失了。 如果應用程式未註冊安裝日期,Windows 會通過註冊資訊的創建日期來推斷此資訊。 如果應用程式未註冊估計大小,Windows 直接將這一欄留空。

為什麼這些資訊慢慢從“程式和功能”控制台功能中消失了呢? 當此功能首次在 2000 年引入時,當時的硬碟以如今的標準看來還非常小。 硬碟空間耗盡是家常便飯。 而隨著時間的推移,硬碟容量大幅增長。 硬碟空間耗盡在一般使用者所面對的問題中,不再那麼重要。

還記得,當 Microsoft 在 1998 年啟動 TerraServer 時,每個人都為 1TB 硬碟空間這樣的概念所震驚嗎? 存儲該專案的所有資料(大約 3TB)用去了 324 塊硬碟,足足佔用了 7 個存儲機櫃。 而今天,您只需付出 100 美元,就能獲得 1TB 硬碟空間,其大小不超過您的手掌。

Raymond Chen

Raymond Chen's 的網站“The Old New Thing”及同名著作(Addison-Wesley,2007 年)講述了 Windows 的發展史、Win32 程式設計和地下月餅經濟。

 

相關內容