卸載軟件的麻煩,主要在兩點:
一是往註冊表中寫入了東西,如果是此軟件獨特的,卸載時刪掉就是了,但問題是有些軟件不是獨特的註冊項,它極可能替換或覆蓋了別的同類軟件的註冊,比如默認的文本文件(後綴.txt)的啓動項,假設你寫的如EditPlus之類軟件,取代了系統默認的NotePad,那麼卸載時,你未必會細緻到恢復原先的註冊項,甚至,原來註冊的軟件可能也已經被刪掉了,祗留空註冊記憶,但你卻把它恢復了註冊。這些問題,都是很難解決的。故此,我對新Windows限制軟件隨意更改註冊表的功能,深有同感,極端讚成——但是很多舊的程序是大量往註冊表寫入東西的,在我看來,這猶如病毒。
二是軟件的一些的公共組件,它不是存儲在自己獨立的文件樹中,而是向系統文件夾典型如System32中儲存,而這些文件往往是多個軟件共享的(如msvc*.dll運行庫),那麽你的軟件卸載時刪不刪這些文件呢?更可怕的是,是大家都是技術帝,有時忍不住去改動這些系統組件,好的,你把自己改過的東西覆蓋了同名文件,於是別的軟件使用你改動過的東西出現了麻煩……後果自己想吧(很多病毒和木馬之類惡意手段都會利用這個東西)。
之所以要寫卸載程序,其實主要就是這些原因,你做的手脚太多,反向恢復環境的時候,衹能讓程序替你記住要做什麽和去做,這就是所謂的卸載程序。
總的說來,我提倡寫綠色軟件(Windows8/10之後也是這樣鼓勵),盡量不要向系統註冊表動手脚,那不顯能耐,給自己和別人代碼麻煩,起碼你要寫一專供的個卸載程序,而綠色軟件是不需要的,帶給別人和用戶的麻煩,如前所述,猶如超級地雷。我的看法和實踐經驗,一直都沒覺得有什麽程序非要向系統注冊表和目錄寫東西的程度,或者是我能力不高吧。
[此贴子已经被作者于2016-3-20 22:51编辑过]