绿色软件,或称可携式软件(英文称为PortableApplication、PortableSoftware或GreenSoftware),指一类小型软件,多数为免费软件,最大特点是软件无需安装便可使用,可存放于闪存中(因此称为可携式软体),移除后也不会将任何纪录(注册表消息等)留在本机计算机上。通俗点讲绿色软件就是指不用安装,下载直接可以使用的软件。绿色软件不会在注册表中留下注册表键值,所以相对一般的软件来说,绿色软件对系统的影响几乎没有,所以是很好的一种软件类型。
软件特征
绿色版软件有如下严格特征(汉化绿色版就是已汉化的绿色软件):
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光盘的目录VALUEADDRDPARTY//MGMT//WINSTLE//中)。在多数时候,仅仅需要对比安装前后注册表的不同,这时候还有大量的注册表工具可以选用。在得出系统差异后,把差异分解为两个部分:文件部分和注册表部分。文件部分指的是向系统目录拷贝的文件,以及作为COM组件注册的文件,还有与这些文件相关的注册表部分。注册表部分单单指其余的注册表的变化。对于文件部分,可以进一步区分出必须要往系统目录拷贝的文件(这种情况是少数)和可以放在软件的安装目录的文件。对于注册表部分,区分出由这个软件的安装程序本身所作出的注册表操作和注册COM组件时候的注册表操作,抛弃其他程序(如资源管理器Explorer)的操作。根据所有这些,写一个拷贝文件,注册COM组件和导入注册表的批处理文件,就可以完成绿色软件的制作了。当注册表文件中含有路径信息的时候,可以手工修改注册表文件或者把注册表文件转化为INF文件从而实现全自动的路径处理。
注册表绿化
这个方法是上面的方法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导入注册表。
通过上面分析安装程序的动作,把安装程序的工作分解为复制文件,注册COM组件,安装服务驱动,注册表配置等几个部分,虽然注册表配置可以复盖注册COM组件,安装服务驱动等操作步骤,但是把这些明显分割出来有助于制作绿色安装的软件。对于需要更复杂的步骤来安装的软件,还是使用原来的安装程序比较保险。
该文章由作者:【封不平】发布,本站仅提供存储、如有版权、错误、违法等相关信息请联系,本站会在1个工作日内进行整改,谢谢!