軟件特征
綠色版軟件有如下嚴格特征(漢化綠色版就是已漢化的綠色軟件):
1不對注冊表進行任何操作。
2不對系統敏感區進行操作,一般包括系統啟動區根目錄、安裝目錄(Windows目錄)、程序目錄(ProgramFiles)、帳戶專用目錄。
3不向自身所在目錄外的目錄進行任何寫操作。
4因為程序運行本身不對除本身所在目錄外的任何文件産生任何影響,所以,根本不存在安裝和卸載問題。
5程序的删除,隻要把程序所在目錄和對應的快捷方式删除就完成卸載過程(如果你手動在桌面或其它位置設置了快捷方式),隻要這樣做,程序就完全幹淨地從你的電腦裡删去,不留任何垃圾。
6不需要安裝,随意拷貝、複制就可以用(重裝操作系統也可以)。
綠化方法
“綠化”方法,需要根據經驗選擇不同的“綠化”方法,也可能需要不斷嘗試不同的方法,直到成功為止。按照先易後難的次序,具體的方法包括:
虛拟化
所謂虛拟化,就是通過把應用程序安裝到一些輕量級的虛拟系統,這些虛拟系統本身非常輕量體積不到6M,但是卻可以和真實Windows一樣,本身支持獨立安裝運行軟件,保存數據,擁有自己的獨立桌面。虛拟系統實現了操作系統與應用程序分離的目标,安裝到虛拟系統之中的任何應用程序都可以在不同的Windows操作系統之間靈活遷移。因此我們可以用它來制作綠色軟件,特别是一些常規方法無法制作的軟件,用虛拟化的方式會更加容易實現。
解壓縮
這是最簡單的一種方法,就是指嘗試能不能直接解開軟件的壓縮包。用Winzip和Winrar試一試,看看能不能直接打開壓縮的安裝文件,如果不能打開,那麼就換别的方法。如果可以,那麼恭喜,這個軟件多半是屬于綠色安裝的軟件(有個别例外,如EmEditor),把壓縮包中的文件直接解壓到目标路徑,然後測試軟件的功能是否正常,如果功能正常,那麼“綠化”就成功了,如果使用不正常,那麼就換别的方法。這一類軟件的特點是安裝程序的工作完全可以由軟件自身來完成。
安裝然後卸載
也是比較容易的方法,完全是體力勞動,就是指直接安裝這個軟件,然後把程序複制出來,最後卸載安裝程序。如果這個軟件的安裝程序的作用僅僅是複制文件和生成快捷鍵等工作,那麼就屬于綠色安裝,可以使用這個方法。
反編譯安裝程序
這個方法需要動腦筋,就是根據安裝程序所用的制作工具,選擇相應的反編譯程序,然後閱讀反編譯出的安裝腳本,制作綠色軟件。目前的軟件大多使用專門的安裝工具制作,如InstallShield,Wise,InnoSetup,WindowsInstaller,NSIS(Nullsoft),InstallerVISE,其中WindowsInstaller格式的安裝文件(就是MSI,MST為後綴的文件),可以通過微軟的免費工具Orca打開查看,InstallShield格式的安裝文件也有很多免費的工具可以解壓縮和查看腳本。當然專門的安裝工具很多,有許多安裝程序沒有相應的反編譯程序,這種時候,就無法使用這個方法了。
反安裝程序
現在的軟件安裝完成後絕大多數都帶有卸載方法。卸載是安裝的逆過程,如果知道怎麼卸載,那麼也可以推測出如何安裝。由專門的安裝工具制作的反安裝程序,一般都是根據某一個文件中的信息來卸載的,可以用一個純文本的編輯器打開這個文件。個别情況下這個文件完全不包含可讀信息,就隻好換用其他方法了。具體過程就是先采用方法2,然後理解反安裝過程,最後根據反安裝的信息制作綠色軟件。
比較系統快照
當前面的方法都失敗的時候,可以試一試這個方法。具體思路就是首先在安裝軟件之前,把系統的狀态記錄下來,主要包括注冊表和系統目錄的所有的文件狀态。然後就是安裝軟件。安裝完成後,再一次記錄系統狀态。最後就是比較前後兩個系統狀态的不同,而得知安裝程序所做的工作。這個工作一般由專門的軟件完成,如免費工具Regshot,免費工具WinInstallLE(在Windows2000Sever光盤的目錄VALUEADDRDPARTYMGMTWINSTLE中)。在多數時候,僅僅需要對比安裝前後注冊表的不同,這時候還有大量的注冊表工具可以選用。在得出系統差異後,把差異分解為兩個部分:文件部分和注冊表部分。文件部分指的是向系統目錄拷貝的文件,以及作為COM組件注冊的文件,還有與這些文件相關的注冊表部分。注冊表部分單單指其餘的注冊表的變化。對于文件部分,可以進一步區分出必須要往系統目錄拷貝的文件(這種情況是少數)和可以放在軟件的安裝目錄的文件。對于注冊表部分,區分出由這個軟件的安裝程序本身所作出的注冊表操作和注冊COM組件時候的注冊表操作,抛棄其他程序(如資源管理器Explorer)的操作。根據所有這些,寫一個拷貝文件,注冊COM組件和導入注冊表的批處理文件,就可以完成綠色軟件的制作了。當注冊表文件中含有路徑信息的時候,可以手工修改注冊表文件或者把注冊表文件轉化為INF文件從而實現全自動的路徑處理。
注冊表綠化
這個方法是上面的方法5的簡化版,現在軟件的配置大多寫在注冊表中的“HKEY_LOCLAL_MACHINESOFTWARE軟件公司名字”和“HKEY_CURRENT_USERSOFTWARE軟件公司名字”這2個鍵下面,直接對把這2個注冊表鍵導出到REG文件中。自注冊的COM組件都需要導出如下4個函數:DllCanUnloadNow,DllGetClassObject,DllRegisterServer,DllUnregisterServer,可以用vc自帶的depend.exe找出哪一個動态鍊接庫是自注冊的COM組件。最後寫一個批處理文件用regsvr32.exe注冊COM組件和用regedit.exe導入注冊表。
通過上面分析安裝程序的動作,把安裝程序的工作分解為複制文件,注冊COM組件,安裝服務驅動,注冊表配置等幾個部分,雖然注冊表配置可以複蓋注冊COM組件,安裝服務驅動等操作步驟,但是把這些明顯分割出來有助于制作綠色安裝的軟件。對于需要更複雜的步驟來安裝的軟件,還是使用原來的安裝程序比較保險。



















