《绿色软件制作原理和方法.docx》由会员分享,可在线阅读,更多相关《绿色软件制作原理和方法.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、绿色软件制作原理和方法一、绿色软件的概念和制作原理:绿色软件,或称可携式软件(英文称为Portable Application、Portable Software或Green Software),指一类小型软件,多数为免费软件,最大特点是软件无需安装便可使用,可存放于闪存中(因此称为可携式软体),移除后也不会将任何纪录(注册表消息等)留在本机计算机上。通俗点讲绿色软件就是指不用安装,下载直接可以使用的软件。绿色软件不会在注册表中留下注册表键值,所以相对一般的软件来说,绿色软件对系统的影响几乎没有,所以是很好的一种软件类型。软件特征绿色版软件有如下严格特征(汉化绿色版就是已汉化的绿色软件):1
2、不对注册表进行任何操作。2 不对系统敏感区进行操作,一般包括系统起动区根目录、安装目录(Windows目录)、程序目录(ProgramFiles)、帐户专用目录。3 不向非自身所在目录外的目录进行任何写操作。4 因为程序运行本身不对除本身所在目录外的任何文件产生任何影响,所以,根本不存在安装和卸载问题。5 程序的删除,只要把程序所在目录和对应的快捷方式删了就可以了(如果你手工在桌面或其它位置设了快捷方式),只要这样做了,程序就完全干净地从你的电脑里删去了,不留任何垃圾。6 不需要安装,随意拷贝、复制就可以用(重装操作系统也可以)。(一)基本分类绿色软件分为狭义绿色和广义绿色:狭义的绿色可以叫做
3、纯绿色软件,就是指这个软件对现有的操作系统部分没有任何改变,除了软件现在安装的目录,应该不往任何地方写东西,删除的时候,直接删除所在的目录就可以了,就类似于以前的大多数DOS程序。广义的绿色可以叫作伪绿色软件,就是指不需要专门的安装程序,对系统的改变比较少,手工也可以方便的完成这些改变,比如拷贝几个动态库,或者导入注册表,这里的关键是手工可以方便的完成这些改变,或者可以借助于批处理等等脚本完成。为什么要分为两类?虽然狭义的绿色软件最为理想,但是完全符合这种定义的软件非常罕见,而相当多的软件可以划分到广义的绿色这个类别,这样包括了广义的绿色软件的概念后使得绿色软件这个概念更有意义。那么不符合绿色
4、软件要求的有哪些呢?主要是指那些和操作系统联系和集成非常紧密的软件,这些软件不适合制成绿色软件,最好还是用原来的安装程序来安装。如IE6,替换了系统中的许多动态库,手工完成这个过程很困难,也不太安全。又比如大多数杀毒软件,如果 必须实时监控系统的底层运作,对系统的修改比较大,就不适合做成绿色软件。还有微软公司的Office系列软件,和系统集成的也比较紧密。但是广义的这个标准比较灵活,如果有人搞清楚了Office系列软件的安装制作过程,也有可能制作出广义的绿色的Of fice系列。(二)深入了解为了充分理解绿色软件的定义,必须从现代软件的安装过程和运行过程两个方面来讨论。安装过程:以前在dos下
5、面的时候,就没有这些所谓绿色软件的说法,原来程序的安装基本上都是简单的复制或者解压缩,然后配置一下config.sys 和autoexec.bat文件就可以了。随着windows的发展,应用软件也越来越大,也越来越复杂,从而有公司专门从事安装程序的制作,如InstallShield就是一款比较有名和应用比较广泛的安装软件,现在Windows也有了专门的安装程 序,就是Microsoft Installer。安装程序的作用是什么呢?主要是为了给要安装的程序提供一个简单方便的设置环境,而不需要用户手工完成这个步骤,越是复杂的配置过程,对系统的修改越多,对安装程序的依赖性就越高,Windows程序的
6、易学易用的优点和良好的安装界面 是分不开的,安装软件的任务就是给应用程序提供一个初步完好的可以运行的环境,而不需要用户进行手工配置。运行过程:应用程序启动的时候,从注册表或者配置文件中读取配置,运行的时候,可以修改配置,但这个修改一般是在安装软件所作工作的基础上进行的,例如不能改变应用程序的安装位置了。明白安装过程和运行过程的区别后,很容易就想到把绿色软件的使用按照这两个阶段分为绿色安装过程和绿色运行过程。绿色安装是绿色运行的前提,没有绿色安装,也就说不上什么绿色运行了,绿色软件首先必须是绿色安装,我前面提到的不适合绿色软件标准的基本上都是不能绿色安装的。(三)绿色安装的基本含义,我认为可以也
7、可以分为狭义的和广义的绿色安装:1 狭义的绿色安装就是指直接拷贝或者解压缩到目标目录,不需要向系统目录拷贝也不需要写入注册表,这是最理想的情况,或者是安装程序的作用除了解压缩外是可以忽略的,如在开始菜单加入快捷键等对系统和软件的运行没有太大影响的操作,也就是说安装过程的作用就是复制文件到目标文件夹。2 广义的绿色安装就是指在狭义的复制的基础上,必须向系统目录拷贝一些动态库,或者要在注册表中导入必要的设置,或者要进行一些其他的配置,否则的话,应用程序不能运行,而且这个配置工作应该比较简单,也容易撤销这些操作对系统的改变。同样,绿色运行也可以分为狭义的和广义的绿色运行:1 狭义的绿色运行指的是软件
8、运行时完全不改变操作系统的文件和配置-很多小程序属于这个类别,或者运行结束后把撤销对系统的改变,比如运行的时候加载一个驱动程序,退出时卸载该驱动程序,所操作的INI文件在自己的程序目录中。2 广义的绿色运行指的是可以通过程序本身来改变当前的设置,如改变当前软件的运行方式,或者与某些文件后缀相关联,或者在注册表中留下当前的软件设置,也就是说对系统的注册表有永久的改变,但是这些改变都是应用程序自己完成的,不需要借助其他程序或者用手工 完成。综合绿色安装和绿色运行,可以把绿色软件细分为:1 狭义的绿色安装,同时是狭义的绿色运行的软件,对操作系统没有任何改变。2 狭义的绿色安装,广义的绿色运行的软件,
9、软件的配置工作由软件本身来完成,不是通过安装程序。3 广义的绿色安装,狭义的绿色运行,软件的配置工作由安装程序来完成,软件本身不能对配置修改,同时如果没有配置工作,软件无法正常运行。4 广义的绿色安装,广义的绿色运行,最复杂的一种绿色软件,软件的配置工作由安装程序来完成,但是软件本身可以对配置 修改,同时如果没有配置工作,软件无法正常运行。只有第一个类别属于我说的狭义的绿色软件,其他3类都属于广义的绿色软件的范畴。二、制作方法:(一)绿色软件的制作简称软件的“绿化”,绿色软件的制作实际上就是我们自己完成安装程序的工作。没有什么固定的方法,基本上是猜测加上试验,不同类别的绿色软件分别有不同的制作
10、策略。拿到一个新的软件,想要制成绿色软件的话,一般遵循如下步骤:1判断,就是指猜测这个软件能不能制成绿色软件,从功能,从你对它的了解,如果你觉得这个软件和系统的关系非常紧密,就不要继续下去了,还是用原始的安装程序最保险最方便,这样的例子有directx9 ,IE6,Norton的反病毒软件等等。这样的判断可以节省你的时间,当然你可以忽略这一步,尝试制作绿色软件,那么就转到第2步。2绿化,对于不同的软件有不同的方法,没有一定的规则,但是总的来说,就是理解软件的安装过程,转换为绿色安装,在这个过程中,可能需要尝试多个方法,也可能最后由于软件的复杂性或者某些特性,导致无法绿化。要有失败的思想准备,具
11、体的绿化方法随后讲 述。3测试,绿化后的测试最好到你个全新安装的操作系统中测试,而且如果你要在多个操作系统中使用这个软件的话,还要在其他的操作系统中测试,有的软件的文件随着操作系统的不同而不同,这个时候你需要在不同的操作系统中进行“绿化”过程,最后综合为一个完整的适应多个操作平台的绿色软件。(二)绿化方法“绿化”方法,需要根据经验选择不同的“绿化”方法,也可能需要不断尝试不同的方法,直到成功为止。按照先易后难的次序,具体的方法包括:虚拟化所谓虚拟化,就是通过把应用程序安装到一些轻量级的虚拟系统,这些虚拟系统本身非常轻量体积不到6M,但是却可以和真实Windows一样,本身支持独立安装运行软件,
12、保存数据,拥有自己的独立桌面。虚拟系统实现了操作系统与应用程序分离的目标,安装到虚拟系统之中的任何应用程序都可以在不同的Windows操作系统之间灵活迁移。因此我们可以用它来制作绿色软件,特别是一些常规方法无法制作的软件,用虚拟化的方式会更加容易实现。1解压缩,这是最简单的一种方法,就是指尝试能不能直接解开软件的压缩包。用Winzip和Winrar试一试,看看能不能直接打开压缩的安装文件,如果不能打开,那么就换别的方法。如果可以,那么恭喜,这个软件多半是属于绿色安装的软件(有个别例外,如E mEditor),把压缩包中的文件直接解压到目标路径,然后测试软件的功能是否正常,如果功能正常,那么“绿
13、化”就成功了,如果使用不正常,那么就换别的方法。这一类软件的特点是安装程序的工作完全可以由软件自身来完成。2安装然后卸载,也是比较容易的方法,完全是体力劳动,就是指直接安装这个软件,然后把程序复制出来,最后卸载安装程序。如果这个软件的安装程序的作用仅仅是复制文件和生成快捷键等工作,那么就属于绿色安装,可以使用这个方法。最后测试软件的功能是否正常, 如果功能正常,那么“绿化”就成功了,如果使用不正常,那么就换别的方法。3反编译安装程序,这个方法需要动脑筋,就是根据安装程序所用的制作工具,选择相应的反编译程序,然后阅读反编译出的安装脚本,制作绿色软件。目前的软件大多使用专门的安装工具制作,如Ins
14、tallShield,Wise,Inno Setup,Windows Installer,NSIS(Nullsoft),Installer VISE,其中Windows Installer格式的安装文件(就是MSI,MST为后缀的文件),可以通过微软的免费工具Orca打开查看,InstallShield格式的安装文件也有很多免费的工具可以解压缩和查看脚本。当然专门的安装工具很多,有许多安装程序没有相应的反编译程序,这种时候,就无法使用这个方法了。4观察安装和反安装文件,现在的软件安装完成后绝大多数都带有卸载方法。卸载是安装的逆过程,如果知道怎么卸载,那么也可以推测出如何安装。一般软件安装后都会
15、在安装文件夹中生成安装文件(如Install.log)和卸载文件(如Unins000.dat)。里面记载着创建的目录、复制的文件、在注册表中创建的键值等信息。可以用一个纯文本的编辑器打开这个文件。个别情况下这个文件完全不包含可读信息,就只好换用其他方法了。具体过程就是先采用方法2,然后理解反安装过程,最后根据反安装的信息制作绿色软件。5比较系统快照,当前面的方法都失败的时候,可以试一试这个方法。具体思路就是首先在安装软件之前,把系统的状态记录下来,主要包括注册表和系统目录的所有的文件状态。然后就是安装软件。安装完成后,再一次记录系统状态。最后就是比较前后两个系统状态的不同 ,而得知安装程序所做
16、的工作。这个工作一般由专门的软件完成,如免费工具Regshot,免费工具WinInstall LE(在Windows 2000 Sever 光盘的目录VALUEADDRDPARTYMGMTWINSTLE中)。在多数时候,仅仅需要对比安装前后注册表的不同,这时候还有大量的注册表工具可以选用。在得出系统差异后,把差异分解为两个部分:文件部分和注册表部分。文件部分指的是向系 统目录拷贝的文件,以及作为COM组件注册的文件,还有与这些文件相关的注册表部分。注册表部分单单指其余的注册表的变化。对于文件部分,可以进一步区分出必须要往系统目录拷贝的文件(这种情况是少数)和可以放在软件的安装目录的文件。对于注
17、册表部分,区 分出由这个软件的安装程序本身所作出的注册表操作和注册COM组件时候的注册表操作,抛弃其他程序(如资源管理器Explorer)的操作。根据所有这些,写一个拷贝文件,注册COM组件和导入注册表的批处理文件,就可以完成绿色软件的制作了。当注册表文 件中含有路径信息的时候,可以手工修改注册表文件或者把注册表文件转化为INF文件从而实现全自动的路径处理。6直接导出注册表,寻找自注册的COM组件。这个方法是上面的方法5的简化版,现在软件的配置大多写在注册表中的“HKEY_LOCLAL_MACHINESOFTWARE软件公司名字”和“HKEY_CURRENT_USERSOFTWARE软件公司名
18、字”这2个键下面,直接对把这2个注册表键导出到REG文件中。自注册的COM组件都需要导出如下4个函数:DllCanUnloadNow,DllGetClassObject,DllRegisterServer, DllUnregisterServer,可以用vc自带的depend.exe找出哪一个动态链接库是自注册的COM组件。最后写一个批处理文件用regsvr32.exe注册COM组件和用regedit.exe导入注册表。 通过上面分析安装程序的动作,把安装程序的工作分解为复制文件,注册COM组件,安装服务驱动,注册表配置等几个部分,虽然注册表配置可以覆盖注册COM组件,安装服务驱动等操作步骤,
19、但是把这些明显分割出来有助于制作绿色安装的软件。对于需要更复杂的步骤来安装的软件,还是使用原来的安装程序比较保险。三、绿化工具:1绿化工具的作用:实际上软件绿化并不一定要借助于其他工具,使用绿化工具是为了减少繁琐的分析和调试的劳动量。例如,一个软件安装后普遍会向注册表写了一些新的表项键值,如果用原始的肉眼观察和手动分析到底哪些是新写入的表项键值,往往是比较困难和繁琐的,花费的时间和精力也相当地大,结果还不一定准确,经常会吃力不讨好,白用功。如果我们善于借助于注册表监视工具,不但大大减少了分析时间,而且工具会对这些新写入的表项键值会形成一个非常精确的分析报告,所谓既省时,也省力。2绿化工具的种类
20、:监视类。其作用是监视软件安装过程中系统内的数据变化情况。这类软件主要包括注册表监视(如:RegSnap、Regmon)和文件监视(如:Filewatch、Uninstall Manager),现在监视软件的功能越来越大,不但具备了监视系统所有数据变化的功能,还能生成详细的分析报告(如:RgShot),掌握监视类软件的使用技巧,对绿化工作来说可以起到事半功倍的效果。解包类。其作用是将安装程序解开,恢复作者打包前的软件模样。绿化中常用的解包工具有:Universal Extractor等。使用该类软件解包就是偶以前写的教程程序解包绿化法,绝大多数软件安装程序都是由一个主程序和多个组件(.DLL
21、.OCX .EXE)组成,部分软件的主程序和组件之间并不依赖于其他外界方式关联在一起,只要保持文件完整,主程序即可运行和正常使用(如:QQ2008、WPS2007等),所以解包就可以达到绿化的目的。要注意:并不是所有的有用文件都可以直接使用,如果遇到需要注册dll或ocx文件才能运行的软件,你不要忘了使用“regsvr32 XXX.dll”或“regsvr32 XXX.ocx”命令(XXX为具体的文件名)将它们在系统中注册。这其中不排除有些软件需将控件文件.DLL .OCX复制到系统相关目录中并注册后,主程序才能正常使用(如:驱动精灵2008等)。调试类。其作用通过改变软件运行环境调试绿化作品
22、的效果。说到调试当然不能少了多数网友使用的WINDOWS XP操作系统,依目前的情况来说,WINDOWS XP仍然是主流,所以绿化作品最基本的要求是能在主流平台正常运行和使用。经常调试软件的朋友都知道,一个软件安装后会在系统中写入数据,这些数据并不能够在软件卸载后就完全清除,有时残留的数据就能让软件运行。所以,绿化作品需要到一个从未安装过该软件的系统上调试才能反映出准确的结果,实际工作中我们并不可能在多台机子上去调试一个软件。WINDOWS XP本身虽然带有还原功能,但并不便捷,为了达到高效、方便的目的,我们往往采用基于系统平台上的第三方软件(如:雨过天晴、影子系统、还原精灵等)达到即时恢复全
23、新运行环境。转换类。其作用是将一个文件格式转换为另一种格式。绿化中常用的文件格式转换有三种,即注册表文件格式.reg转为.inf安装格式,批处理文件格式.bat(.cmd)转为.exe文件格式,注册表文件格式.reg转为批处理文件格式.bat(.cmd)。因注册表文件REG格式局限性比较多,尤其是在其中含有文件路径表项时,文件目录就必须按此路径,否则软件可能无法正常使用。相反,INF灵活得多,文件目录在系统中的位置一般都可以随意变动,所以通常绿化作品应尽量避免利用含有文件路径的注册表REG文件来设置软件关联。制作类。其作用是将绿化作品进行适当地加工制作,也可以称之为DIY。这类工具包括资源修改
24、(如:eXeScope、ResScope)、单文件版制作(如:winrar、MoleBox、FilePacker)、文件包设置(如:ForlderSet)等。本类工具绿化中并非十分常用,不再详解。3常用绿化工具推荐及介绍。系统监视:RegShot是个简单,实用的注册表比较工具,它通过两次抓取注册表而快速地比较出答案。它的非压缩版本体积为 29K,压缩版(UPX)为 13K,在同类软件中可谓是小巧玲珑! 另外它还可以将您的注册表以纯文本方式记录下来,便于浏览;还可以监察 Win.ini,System.ini 中的键值;还可以监察您 Windows 目录和 System 目录中文件的变化,为您手工
25、卸载某些软件创造条件。备选工具:Total Uninstall、InstallWatch Pro等。程序解包:Universal Extractor 是一款近乎于万能的文件提取器,支持的文件类型多达40多种。无论是简单的压缩文件如zip、rar、7z,还是软件的安装程序如Inno Setup、InstallShield、Winodws Installer,抑或是一些软盘光盘镜像如IMG、ISO,甚至某些加壳的PE文件都可以使用它将打包在其中的文件提取出来。软件的使用十分方便,只需要指定待提取的文件和目标文件夹,Universal Extractor 会自动分析文件类型并提取完成。通过在资源管理
26、器中使用鼠标右键操作,更是可以一键完成提取。注册表转INF:制作绿色软件经常要用到 Reg2Inf.exe , Reg2Inf.exe 为命令行程序,平时要进行转换感觉有点麻烦。在Dos 下执行,也是不太方便!因而有人就制作了这个GUI界面的Reg2InfGUI,有了它点击右键就可将注册表Reg文件来转换为inf文件非常方便。注册表转批BAT:Reg To Bat (Reg2Bat) 是一款可以将 .REG 格式的注册表文件转换成 .BAT 批处理文件的小工具. 此软件是用 C# 编写,因此需要你的操作系统支持 .Net Framework 2.0,可到微软的官方网站下载。BAT转EXE:Qu
27、ick Batch File Compiler一款奇妙的工具,它可以把批处理文件 (.bat、.cmd格式) 换为真正的可执行程序 (.exe格式),它可以毫无限制地运行于 Win95/98/ME/2000/2003/XP 下。对于转换出来的程序,你可以自定义程序的图标以及版本信息等;批处理文件的内容还可以加密保护以防止被修改。备选:ExeScript V3.0.0等。调试辅助:Returnil Virtual System来自欧洲著名的安全公司Returnil SIA,它是一个基于虚拟机原理的新一代防毒防木马类软件,可以瞬间把您的计算机用隔离罩保护起来,同时用一个内存中的虚假替身影子系统来接
28、管真实的操作系统,任何病毒和木马都被限制在虚拟系统中使用,无法感染你真实的操作系统。重启后,所有危险即刻消失的无影无踪。很多网友可能都使用过影子系统2008或者其他的影子软件,力荐Returnil是因为它比其他影子软件具有更多的优点:a、占用系统资源低,是这它最大的优势,本人试用过各类影子系统,但Returnil占用内存资源是最少的;b、不需占用硬盘空间来做备份;c、它的安全模式下保护和密码设置保护,很好的防止了未经允许的修改以及轻易进入开放模式等。最重要的是这么好的东西还是免费的,难找啊!备选工具:雨过天晴电脑保护系统专业版、影子系统(PowerShadow) 2008等。 一般来说,软件绿
29、化有上述五星推荐的“四大法宝”就绰绰有余了,只要多点实例应用,很容易掌握其中的技巧四、绿化实例:对于每个方法,下面我会给出具体的例子,有些时候,需要几个方法联合使用,无论使用什么方法,都是模拟原来的软件作者的安装过程,所以原作者最容易给出该软件的绿色版本。 例如:winrar3.30 和Winzip9.0,采用方法1,解压缩。这个方法非常简单,从天空软件站下载Winzip90.exe和winrar330sc.exe,在一个安装了Winrar的系统上,用鼠标右键选择下载的文件,运行右键菜单中的用Winrar打开的命令,然后把文件解压到我们的目标路径,如E:tools目录,就可以了。然后分别对Wi
30、nzip9和Winrar进行设置就可以了。运行winzip9目录中的Winzip32.exe,进行winzip的设置。Winrar也是一样,运行Winrar.exe,打开菜单选项-设置,弹出一个对话框,选择标签-集成,如图WinrarSetting.png,逐项对Winrar设置。当拷贝到U盘而到新的机器上运行时,需要重复这些设置过程。 这一类软件的特点是安装程序的工作完全可以由软件自身来完成,从而完全抛开安装程序,或者说安装程序的工作也就是解压缩。类似的软件还有一些,最简单的测试办法就是看看Winrar能否直接打开压缩的安装程序。也可以采用方法2,过程基本上和方法1一样。 方法2就不具体说明
31、了,仅仅指出有许多程序属于这个类别,如Myie2,GreenBrowser,qq,BPFTP Server,IDA_Pro_Standard_4.5.1.770,FinalData,EASYRECOVERY 6.03,腾逊公司的TM等等。 flashget是大家用得比较多的一个软件,可以多线程下载并且下载管理的功能也很方便,从天空软件站下载flashget1.60a国际版,运行一下,如图flashget_wise.PNG,然后取消安装。从图上可以看出flashget1.60a国际版是使用Wise制作的安装程序,从网上下载wungui程序,非常容易的把安装程序解压缩到一个目录中,如图flashg
32、et160a.PNG,观察Maindir目录,其中有两个DLL文件Jccatch.dll和fgiebar.dll,进一步察看这两个动态库文件的导出函数,可以知道这两个DLL文件都是自注册的COM组件,写一个批处理文件install.bat来注册这两个DLL: REGSVR32 JCCATCH.DLL /s REGSVR32 fgiebar.dll /s 经过测试,功能正常,并且可以从浏览器IE中用鼠标的右键菜单激活flashget,功能完全,下面考虑卸载过程。运行Regedit.exe,发现flashget在注册表中的路径是HKEY_CURRENT_USERSoftwareJetCarJetC
33、ar,写一个注册表文件unflashget.reg删除这个路径,如下:REGEDIT4;flashget -HKEY_CURRENT_USERSoftwareJetCarJetCar 同时写一个批处理文件uninstall.bat来卸载这两个DLL文件并导入unflashget.reg: Regedit unflashget.reg /sREGSVR32 JCCATCH.DLL /s /U REGSVR32 fgiebar.dll /s /U 随后就是删除一些我们用不到的文件,比如language目录的绝大多数欧洲的语言文件,这时候这个绿色版本就做好了。把制作好的绿色的flashget拷贝到U
34、盘上,需要用的时候,直接执行里面的install.bat文件就可以了(注意,要在flashget的目录运行批处理文件),不需要任何文件拷贝。 我看到有人提到用优化大师提取falshget的注册表,然后直接导入注册表来制作绿色的flashget,这样做是不行的,从我前面的步骤来看,注册2个DLL文件必然在注册表中引入了绝对路径,那么如果直接提取注册表的话,就必须根据当前的路径来修改注册表中的路径,否则的话制作的绿色版的flashget只能在固定的目录运行。在制作flashget绿色版的时候,我同时使用了方法3和方法6,使用方法3的目的就是避免安装程序对系统作的修改,这样可以直接在当前系统进行测试
35、,而不需要到另外一个没有安装过flashget的系统测试。 Emeditor是方法1的一个反例。 Emeditor可以从开发商主页 键拖动鼠标),并允许无限撤消、重做,总之功能多多,使用方便,是替代记事本的最佳编辑器。 下载emed404epx.exe后,发现用Winrar可以打开,解压后,运行Emeditor,发现丢失了预定义的多种文本格式的语法配置,看来这样做不行,只好采用方法5了。请随我一步步进行,步骤如下:1 扫描系统,制订系统快照。这里我仅仅记录当前系统的注册表(因为我认为Emeditor不会向系统目录拷贝文件,如果判断错误,就会导致“绿化”失败),运行ART(AdvancedReg
36、istery Tracer),扫描一遍注册表。如图emeditor_snap.PNG,不要关闭ART。2 安装Emeditor。随便安装到哪里,反正一会就卸载。安装好后,如果需要的话,更改配置,或者配置新的文件类型,例如我就增加了NFO文件类型,设定和NFO文件相关联的字符集,这样可以用Emeditor直接察看NFO文件,不需要专门的察看工具了。3 记录系统变化。再一次扫描系统,给系统作快照,从ART里面再一次扫描注册表,然后选择菜单命令Registry-compare here或者直接用键盘F10,比较结果如图emeditor_compare.png,点击图中那个save to redo f
37、ile的按钮,存储为Emeditor.reg文件,关闭ART。4 复制并卸载。复制安装好的Emeditor目录到其他路径,然后卸载Emeditor程序。5 分析。打开刚刚导出的Emeditor.reg文件,这是一个巨大的reg文件,单单是REG文件就有1兆多,不过不用担心。阅读注册表后,删除和emeditor无关的注册表项后,如仅仅和资源管理器相关的注册表部分,发现剩下的注册表文件可以分成3个部分。一部分在位于注册表的这个路径HKEY_LOCAL_MACHINESOFTWAREEmSoft,里面大部分不涉及路径,只有一项记录了Emeditor的路径,就是“ModulePath”=“h:EmEd
38、itor4”;还有一大部分在注册表的这个路径下面HKEY_CURRENT_USERSoftwareEmSoftEmEditor v3,里面有很多项都涉及了Emeditor的路径,如“Tmpl”=“h:EmEditor4template.xml”;还有就是和Emeditor和txt文件后缀向关联的注册表设置,把Emeditor设置为IE中缺省的源代码察看工具的注册表设置以及注册COM组件EMEDSHL.DLL的注册表部分(和InProcServer32相关的就是)。6 “绿化”。6.1 把位于注册表路径路径HKEY_LOCAL_MACHINESOFTWAREEmSoft的内容存储到emedito
39、r_HKLM.reg文件中,把位于注册表路径HKEY_CURRENT_USERSoftwareEmSoftEmEditor v3的内容存储到emeditor_HKCU.reg文件中,把剩下的内容首先除掉COM组件EMEDSHL.DLL的相关部分,然后存储到emeditor_assoc.reg文件中。6.2 把emeditor_HKLM.reg文件和emeditor_HKCU.reg文件中涉及到路径的注册表内容抽取出来,存储到emeditorConf.reg文件。6.3 把emeditor_assoc.reg文件和emeditorConf.reg文件用INF的语法转换为INF文件,或者用一个免费
40、小工具reg2inf.exe自动转换,然后把转换得到的emeditor_assoc.inf文件和emeditorConf.inf文件中的路径h:EmEditor4全部用%01%代替。下面是emeditorConf.inf文件的内容:Version Signature=“CHICAGO”DefaultInstall AddReg=EmeditorConf_AddReghklm,“SOFTWAREEmSoftEmEditor v3Common”,“ModulePath”,“%01%”hkcu,“SoftwareEmSoftEmEditor v3ConfigC+”,“Tmpl”,“%01%templ
41、ate.cpp”hkcu,“SoftwareEmSoftEmEditor v3ConfigCSS”,“Tmpl”,“%01%template.css”hkcu,“SoftwareEmSoftEmEditor v3ConfigHTML”,“Tmpl”,“%01%template.htm”hkcu,“SoftwareEmSoftEmEditor v3ConfigJava”,“Tmpl”,“%01%template.java”hkcu,“SoftwareEmSoftEmEditor v3ConfigJavaScript”,“Tmpl”,“%01%template.js”hkcu,“SoftwareE
42、mSoftEmEditor v3ConfigJSP”,“Tmpl”,“%01%template.jsp”hkcu,“SoftwareEmSoftEmEditor v3ConfigPerl”,“Tmpl”,“%01%template.pl”hkcu,“SoftwareEmSoftEmEditor v3ConfigPHP”,“Tmpl”,“%01%template.php”hkcu,“SoftwareEmSoftEmEditor v3ConfigPython”,“Tmpl”,“%01%template.py”hkcu,“SoftwareEmSoftEmEditor v3ConfigRuby”,“T
43、mpl”,“%01%template.rb”hkcu,“SoftwareEmSoftEmEditor v3ConfigTeX”,“Tmpl”,“%01%template.tex”hkcu,“SoftwareEmSoftEmEditor v3ConfigVBScript”,“Tmpl”,“%01%template.vbs”hkcu,“SoftwareEmSoftEmEditor v3ConfigVBScript for EmEditor”,“Tmpl”,“%01%template.vbee”hkcu,“SoftwareEmSoftEmEditor v3ConfigWindows Script”,
44、“Tmpl”,“%01%template.wsf”hkcu,“SoftwareEmSoftEmEditor v3ConfigXML”,“Tmpl”,“%01%template.xml”* 写一个批处理文件install.bat,内容如下:regedit emeditor_HKLM.regregedit emeditor_HKCU.regRUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .emeditorConf.infregsvr32 EMEDSHL.DLLRUNDLL32.EXE SETUPAPI.DLL,Inst
45、allHinfSection DefaultInstall 128 .emeditor_assoc.inf6.5 把install.bat,emeditorConf.inf,emeditor_assoc.inf,emeditor_HKLM.reg,emeditor_HKCU.reg5个文件存储到Emeditor的目录,删除其余的注册表文件。6.6 根据安装步骤和install.bat,写出相应的卸载的批处理文件,这个比较简单。 经过测试后,Emeditor工作正常,也可以注释掉install.bat的最后2行语句,这样Emeditor就不会和系统关联,上面的步骤是在windows 2000上的
46、,对于win9x也同样,而且win9x下面的emeditor的配置文件和windows 2000的一样,仅仅是程序的版本不同。 把制作好的绿色的emeditor拷贝到U盘上,需要用的时候,直接执行里面的install.bat文件就可以了(注意,要在Emeditor的目录运行批处理文件),不需要任何文件拷贝。这个例子演示如何自动绿色安装,如何解决路径问题,如果你用几十个类似的绿色软件,但是需要手工修改路径的话,是很难记住那些路径需要修改的,当然你如果可以写出自动替换路径的脚本也是可以的。我说u盘就是为了强调 路径可以变化,如果大家所使用的机器的所有分区排列都是一样的话,都是把软件存储到c:的话,
47、是可以直接备份注册表的,否则需要手工修改路径,修改一个容易,多了就麻烦了。 从以上的事例中,可以看出,方法2和方法1基本一样,只不过方法1我们使用WinRar解压缩,而方法2我们使用安装程序解压缩。方法6可以说是方法5的简化版本,方法3和方法4也可以辅助方法5,也有一些需要联合应用这些方法,有时候难以判断到底使用了那个方法,方法是死的,需要灵活运用,有些时候需要不断试验。 我简单说几个软件“绿化”时候使用的方法,某些软件可能有多种“绿化”方法,然而最后的结果基本一样: 使用方法1就不提了,只要没有专门的安装程序,直接以zip形式发布的,都使用方法1。CuteFTP,Flashfxp,qq,foobar ,winamp2.8,acrobat,FinalData ,金山词霸 ,ZoomPlayer,WinISO ,IsoBuster,WinISO ,MIRC,WinCVS,Photoshop6 ,EASYRECOVERY 6.03,网易泡泡使用方法2。 VisualC+ 6, real player,realmedia的解码器包,大部分解码器如vp6,mpeg2,ac3 ,ogg ,divx ,xvid 使用方法5。 Netants ,flashget,OfflineExploreracdsee,ultraedit ,IBM词典,theBat,网文快捕,和现在的CyberArti