来自:虎洋 > 馆藏分类
配色: 字号:
绿色软件制作方法(完整版)
2019-06-03 | 阅:  转:  |  分享 
  
绿色软件制作方法(完整有图版)



许多人深有感触,重装系统的麻烦之处往往不仅仅在于Windows的安装过



程,还有大量实用软件的安装和配置过程:周而复始的“运行Setup→选择目标



路径→选择安装组件”过程,让人不胜其烦,如何删繁就减,让安装从此轻松起



来呢?这次我们就来一个软件绿化大行动,了解什么是绿色软件,如何制作绿色



软件,如何让系统重装后,大量的实用软件不需要安装或者只需要简单的操作,



就能直接使用。



小知识深入认识绿色软件



在DOS下装软件,程序只要直接拷贝或者解压缩就能够使用,不喜欢删掉



就是。现在Windows下的程序必须经常安装才能使用,而且在安装时,可能往



Windows注册表等种种你想都想不到的地方,塞进越来越多的“私货”。于是,



人们开始怀念起以前“简单”的岁月,给那些安装时不用修改Windows注册表



等任何内容,也不往Windows文件夹中拷任何文件,甚至是简单拷来就能用的



软件就是“绿色软件”。



绿色软件可分为狭义和广义两种。狭义的绿色也称为纯绿色软件,是指软件



对系统几乎没有任何改变,除了软件的安装目录,不往注册表、系统文件夹等任



何地方写入任何信息(或只在开始菜单中添加简单的快捷方式),卸载软件只需要



直接删除安装目录即可,类似于以前的大多数DOS程序。



广义的绿色软件则不需要专门的安装程序,对系统的改变比较少,手工就可



以完成操作,比如拷贝几个动态库、导入注册表或者可以借助于批处理等脚本即



可直接完成。狭义的绿色软件最为理想,但现在完全符合这种定义的软件已经越



来越少了,好在相当多的软件还是可以制作成广义的绿色软件。



制作为绿色软件有何好处



1.省略或简化程序的安装过程



绿色软件可以放置在硬盘的任何目录中,重装系统后,这些软件不用安装或



只需要简单的安装就可运行。比如通过复制安装文件夹的方法可以制作QQ、



Foxmail的绿色软件,无论如何重装系统,也不管复制到任何目录中,只需要双

击里的可执行程序即可运行。即使不是这样的绿色软件,也仅仅只需要执行批处



理文件、安装脚本或REG文件即可,大大简单了程序的安装。



2.省略或简化程序的配置



大量的软件将配置和数据保存在安装文件夹或注册表中,在制作绿色软件的



时候,这些都被很好地保存下来。如QQ的聊天记录、好友信息,Foxmail的邮



件、帐号等,都会毫发无损地保留下来,而如果是重新安装,这些信息的重新配



置都将是一个很大的工作量,对于不懂电脑的人来说,更是麻烦。



3.可迁移性强



理论上讲,绿色软件可以放置在电脑的任何一个地方,也可以通过移动硬盘



携带到其他的电脑中不需安装直接运行,这给我们的工作带来很大的便利(如QQ



聊天记录、电子邮件、地址簿、自定义的输入法等)。



如何“绿化”软件



下面我们就来探讨一下绿色软件的制作方法(简称为“绿化”),绿化的过程



实际上就是我们自己完成安装程序的工作。没有什么固定的方法,需要猜测、分



析和不断的试验、测试,在实际操作过程中,有以下一些由易到难的方法将有助



于你的绿化行动。



1.解压缩



先安装WinRAR,右击扩展名为EXE的安装文件试一试,如果有解压缩的



选项(或有“用WinRAR打开”,如图1),那该软件多半是属于绿色安装的软件



(也有例外,如EmEditor),试着把压缩包中的文件直接解压到目标路径,双击运

行可执行文件,就可以测试软件的功能是否正常,如果功能正常,那么“绿化”



成功;如果不正常,就得动用下面的方法。

2.安装后卸载



先安装软件,然后复制程序的安装文件夹到另一目录下,接着卸载此软件,



再到目标文件夹中双击可执行文件,看是否能正常运行。如果功能正常,那么“绿



化”就成功了(前面提到的QQ和Foxmail就是此类型的典型代表软件)。



3.反编译安装程序



这个方法需要费一点力气了,需要根据安装程序所用的制作工具,选择相应



的反编译程序,然后阅读反编译出的安装脚本,制作绿色软件。目前的软件大多



使用专门的安装工具制作,如InstallShield,Wise,InnoSetup,Windows



Installer,NSIS(Nullsoft),InstallerVISE,其中WindowsInstaller格式的安装



文件(就是MSI,MST为后缀的文件),可以通过微软的免费工具Orca打开查看,



InstallShield格式的安装文件也有很多免费的工具可以解压缩和查看脚本。如果



没有相应的反编译程序,就无法使用这个方法了。



4.观察安装和反安装文件



一般软件安装后都会在安装文件夹中生成安装文件(如Install.log)和卸载文



件(如Unins000.dat)。里面记载着创建的目录、复制的文件、在注册表中创建的



键值等信息,可以用纯文本编辑器打开、查看这些文件(如图2)。查看这些文件



可以理解反安装过程,最后根据反安装的信息制作绿色软件。个别情况下这个文



件完全不包含可读信息,就只好换用其他方法了。





5.比较系统快照

当前面的方法都失败的时候,可以试一试这个方法。具体思路就是在安装软



件之前,把系统的状态记录下来,主要包括注册表和系统目录的所有文件状态。



接下来就是安装软件,安装完成后,再一次记录系统状态。最后就是比较前后两



个系统状态的不同,即可得知安装程序所做的工作。



这些工作可以由专门的软件完成,如免费工具Regshot(比较注册表变化),



免费工具InCtrl5(监视软件安装会对系统造成的影响,包括注册表、INI文件、指



定文件、指定文件夹、驱动器等),微软的Sysdiff工具(包含在Windows2000



的ResourceKit中,用来查看安装应用程序前后注册表和硬盘上文件的变化),



或者WinInstallLE(在Windows2000Server安装光盘



中)。

系统前后的差异分为文件部分和注册表部分。文件部分指的是向系统目录拷



贝的文件,以及作为COM组件注册的文件,还有与这些文件相关的注册表部分,



注册表部分单单指其余的注册表的变化。对于文件部分,可以进一步区分出必须



要往系统目录拷贝的文件(这种情况是少数)和放在软件安装目录的文件。对于注



册表部分,区分出由这个软件的安装程序本身所作出的注册表操作和注册COM



组件时候的注册表操作。



6.直接导出注册表寻找自注册的COM组件



这个方法是方法5的简化版,现在软件的配置大多写在注册表中的



“软件公司名字”和



“软件公司名字”这2个键下面,直接



对把这2个注册表键导出到REG文件中。自注册的COM组件都需要导出如下



4个函数:DllCanUnloadNow,DllGetClassObject,DllRegisterServer,



DllUnregisterServer,可以用VC自带的Depend.exe找出哪一个动态链接库是



自注册的COM组件。最后写一个批处理文件用Regsvr32.exe注册COM组件



和用Regedit.exe导入注册表。



通过上面分析安装程序的动作,把安装程序的工作分解为复制文件、注册



COM组件、安装服务驱动、注册表配置等几个部分,虽然注册表配置可以覆盖



注册COM组件、安装服务驱动等操作步骤,但是把这些步骤明显分割出来有助



于制作绿色安装的软件。

以上所列绿化软件的六种方法,由易到难,有时可能需要几个方法联合使用。



绿化软件没有一条终南捷径,需要不断地分析和测试,测试时,最好能到全新的



系统中或别的电脑中跨平台进行。这里需要说明的是,无论使用什么方法,都是



模拟软件的安装过程,所以原作者最容易给出该软件的绿色版本。



绿化实例



1.WinZip和WinRAR巧绿化



WinRAR和WinZip可以采用方法1直接解压缩安装文件,先下载安装文件



到一个安装了WinRAR的系统上,右击选择“解压文件”,在弹出窗口中选择



目标路径即可,然后双击目标文件夹中的可执行文件即可直接运行。不过,第一



次运行时,需要对软件进行设置。



2.FlashGet的绿化



第一步:解压安装程序



FlashGet是大家用得比较多的一个软件,要制作它的绿化版本,需要方法3



和方法6配合使用。下载并运行FlashGet的安装程序,然后取消安装。从如图



3上可以看出FlashGet是使用Wise制作的安装程序,下载安装Wungui软件,



可以非常容易地把安装程序解压缩到一个目录中(如图4)。

第二步:注册DLL



观察Maindir目录,其中有两个DLL文件Jccatch.dll和Fgiebar.dll,进一



步察看这两个动态库文件的导出函数,可以知道这两个DLL文件都是自注册的



COM组件,写一个批处理文件install.bat来注册这两个DLL。

REGSVR32Jccatch.dll/s



REGSVR32Fgiebar.dll/s



经过测试,功能正常,并且可以从浏览器IE中用鼠标的右键菜单激活



FlashGet,功能完全,下面考虑卸载过程。



第三步:制作反安装程序



运行Regedit.exe,发现FlashGet在注册表中的路径是



[HKEY_CURRENT_USER\Software\JetCar\JetCar],写一个注册表文件



unflashget.reg删除这个路径,如下:

REGEDIT4



;FlashGet



[-HKEY_CURRENT_USER\Software\JetCar\JetCar]



同时写一个批处理文件uninstall.bat来卸载这两个DLL文件并导入



unflashget.reg。

Regedit/sunflashget.reg



REGSVR32/s/UJccatch.dll

REGSVR32/s/UFgiebar.dll



第四步:删除不必要文件



随后删除我们用不到的文件,比如Language目录下大量欧洲的语言文件,



这个绿色版本就做好了。把制作好的绿色的FlashGet拷贝到U盘上,需要用的



时候,直接执行里面的Install.bat文件就可以了(注意,要在Flashget的目录运



行批处理文件),不需要任何文件拷贝,不再使用时,直接双击uninstall.bat卸



载。



小提示



有人用优化大师提取FlashGet的注册表,然后直接导入注册表来制作绿色



的FlashGet,这样做是不行的。从前面的步骤来看,注册两个DLL文件必然在



注册表中引入绝对路径,如果直接提取注册表的话,就必须根据当前的路径来修



改注册表中的路径,否则制作的绿色版的FlashGet只能在固定的目录运行。



3.更多软件的绿化



除了以上提到的一些软件,CuteFTP、MyIE2、FlashFXP、QQ、



GreenBrowser、Foxmail、Foobar、Winamp、Acrobat、FinalData、金山词霸、



ZoomPlayer、WinISO、ISOBuster、TotalCommander、网易泡泡都可以使用



方法2来绿化。



VisualC++、RealPlayer、RealMedia的解码器包,大部分解码器如MPEG2、



AC3、OGG、DivX、XviD可以使用方法5来绿化。



Netants、FlashGet、OfflineExplorer、ACDSee、UltraEdit、theBat、



CyberArticle、PartitionMagic都可以使用方法6来完成绿化。



不适合“绿化”的有DirectX、WindowsMediaPlayer9、IE6.0、微软的



补丁程序、Office、反病毒工具NAV、Java虚拟机、虚拟机VMware等。有些



是“绿化”起来比较困难,如Office,因为注册表文件中有大量的绝对路径存在,



而且Office的组件之间有比较复杂的联系,所以难以“绿化”;另有一些是“绿



化”没有意义,如IE6.0、微软的补丁程序、DirectX等。



对于大部分软件来说,通过以上的绿化方法能解决全部的问题。但还有另一



部分软件,需要做进一步的处理或采取别的方式,比如注册表文件只能保存绝对

路径,那通过导出注册表的方式制作的绿色软件其路径必须是固定的,或者移动



位置后需要修改注册表文件中的绝对路径后再导入。
献花(0)
+1
(本文系虎洋首藏)