绿色软件制作教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
绿色软件制作教程
2006-10-25 13:49
许多人深有感触,重装系统的麻烦之处往往不仅仅在于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,Inno Setup,Windows Installer,NSIS(Nullsoft),Installer VISE,其中Windows Installer格式的安装文件(就是MSI,MST为后缀的文件),可以通过微软的免费工具Orca打开查看,InstallShield格式的安装文件也有很多免费的工具可以解压缩和查看脚本。如果没有相应的反编译程序,就无法使用这个方法了。
4.观察安装和反安装文件
一般软件安装后都会在安装文件夹中生成安装文件(如Install.log)和卸载文件(如
Unins000.dat)。里面记载着创建的目录、复制的文件、在注册表中创建的键值等信息,可以用纯文本编辑器打开、查看这些文件(如图2)。查看这些文件可以理解反安装过程,最后根据反安装的信息制作绿色软件。个别情况下这个文件完全不包含可读信息,就只好换用其他方法了。
5.比较系统快照
当前面的方法都失败的时候,可以试一试这个方法。具体思路就是在安装软件之前,把系统的状态记录下来,主要包括注册表和系统目录的所有文件状态。接下来就是安装软件,安装完成后,再一次记录系统状态。最后就是比较前后两个系统状态的不同,即可得知安装程序所做的工作。
这些工作可以由专门的软件完成,如免费工具Regshot(比较注册表变化),免费工具
InCtrl5(监视软件安装会对系统造成的影响,包括注册表、INI文件、指定文件、指定文件夹、驱动器等),微软的Sysdiff工具(包含在Windows 2000的Resource Kit中,用来查看安装应用程序前后注册表和硬盘上文件的变化),或者WinInstall LE(在Windows 2000 Server安装光盘Valueadd\3rdparty\Mgmt\Winstle\中)。
系统前后的差异分为文件部分和注册表部分。文件部分指的是向系统目录拷贝的文件,以及作为COM组件注册的文件,还有与这些文件相关的注册表部分,注册表部分单单指其余的注册表的变化。对于文件部分,可以进一步区分出必须要往系统目录拷贝的文件(这种情况是少数)和放在软件安装目录的文件。对于注册表部分,区分出由这个软件的安装程序本身所作出的注册表操作和注册COM组件时候的注册表操作。
6.直接导出注册表寻找自注册的COM组件
这个方法是方法5的简化版,现在软件的配置大多写在注册表中的
“HKEY_LOCLAL_MACHINE\SOFTWARE\软件公司名字”和“HKEY_CURRENT_USER\SOFTWARE\软件公司名字”这2个键下面,直接对把这2个注册表键导出到REG文件中。自注册的COM组件都需要导出如下4个函数:DllCanUnloadNow,DllGetClassObject,DllRegisterServer,DllUnregisterServer,可以用VC自带的Depend.exe找出哪一个动态链接库是自注册的COM组件。最后写一个批处理文件用Regsvr32.exe注册COM组件和用Regedit.exe导入注册表。