关于软件如何制作绿化_一叶知秋_百度空间

绿化实例


  1.WinZip和WinRAR巧绿化

  WinRAR和WinZip可以采用方法1直接解压缩安装文件,先下载安装文件到一个安装了WinRAR的系统上,右击选择“解压文件”,在弹出窗口中选择目标路径即可,然后双击目标文件夹中的可执行文件即可直接运行。不过,{dy}次运行时,需要对软件进行设置。

  2.FlashGet的绿化

  {dy}步:解压安装程序

  FlashGet是大家用得比较多的一个软件,要制作它的绿化版本,需要方法3和方法6配合使用。下载并运行FlashGet的安装程序,然后取消安装。从如图3上可以看出FlashGet是使用Wise制作的安装程序,下载安装Wungui软件,可以非常容易地把安装程序解压缩到一个目录中(如图4)。

点击放大此图片

  第二步:注册DLL

  观察Maindir目录,其中有两个DLL文件Jccatch.dll和Fgiebar.dll,进一步察看这两个动态库文件的导出函数,可以知道这两个DLL文件都是自注册的COM组件,写一个批处理文件install.bat来注册这两个DLL。

  REGSVR32 Jccatch.dll /s

  REGSVR32 Fgiebar.dll /s

  经过测试,功能正常,并且可以从浏览器IE中用鼠标的右键菜单xxFlashGet,功能xx,下面考虑卸载过程。

  第三步:制作反安装程序

  运行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 /s unflashget.reg

  REGSVR32 /s /U Jccatch.dll

  REGSVR32 /s /U Fgiebar.dll

  第四步:删除不必要文件

  随后删除我们用不到的文件,比如Language目录下大量欧洲的语言文件,这个绿色版本就做好了。把制作好的绿色的FlashGet拷贝到U盘上,需要用的时候,直接执行里面的Install.bat文件就可以了(注意,要在Flashget的目录运行批处理文件),不需要任何文件拷贝,不再使用时,直接双击uninstall.bat卸载。

  小提示

  有人用优化大师提取FlashGet的注册表,然后直接导入注册表来制作绿色的FlashGet,这样做是不行的。从前面的步骤来看,注册两个DLL文件必然在注册表中引入{jd1}路径,如果直接提取注册表的话,就必须根据当前的路径来修改注册表中的路径,否则制作的绿色版的FlashGet只能在固定的目录运行。

  3.更多软件的绿化

  除了以上提到的一些软件,CuteFTP、MyIE2、FlashFXP、QQ、GreenBrowser、Foxmail、Foobar、Winamp、Acrobat、FinalData、金山词霸、ZoomPlayer、WinISO、ISOBuster、Total Commander、网易泡泡都可以使用方法2来绿化。

  VisualC++、RealPlayer、RealMedia的解码器包,大部分解码器如MPEG2、AC3、OGG、DivX、XviD可以使用方法5来绿化。

  Netants、FlashGet、Offline Explorer、ACDSee、UltraEdit、the Bat、CyberArticle、PartitionMagic都可以使用方法6来完成绿化。

  不适合“绿化”的有DirectX、Windows Media Player 9、IE 6.0、微软的补丁程序、Office、反病毒工具NAV、Java虚拟机、虚拟机VMware等。有些是“绿化”起来比较困难,如Office,因为注册表文件中有大量的{jd1}路径存在,而且Office的组件之间有比较复杂的联系,所以难以“绿化”;另有一些是“绿化”没有意义,如IE 6.0、微软的补丁程序、DirectX等。

  对于大部分软件来说,通过以上的绿化方法能解决全部的问题。但还有另一部分软件,需要做进一步的处理或采取别的方式,比如注册表文件只能保存{jd1}路径,那通过导出注册表的方式制作的绿色软件其路径必须是固定的,或者移动位置后需要修改注册表文件中的{jd1}路径后再导入。

  小知识 深入认识绿色软件

  在DOS下装软件,程序只要直接拷贝或者解压缩就能够使用,不喜欢删掉就是。现在Windows下的程序必须经常安装才能使用,而且在安装时,可能往Windows注册表等种种你想都想不到的地方,塞进越来越多的“私货”。于是,人们开始怀念起以前“简单”的岁月,给那些安装时不用修改Windows注册表等任何内容,也不往Windows文件夹中拷任何文件,甚至是简单拷来就能用的软件就是“绿色软件”。

  绿色软件可分为狭义和广义两种。狭义的绿色也称为纯绿色软件,是指软件对系统几乎没有任何改变,除了软件的安装目录,不往注册表、系统文件夹等任何地方写入任何信息(或只在开始菜单中添加简单的快捷方式),卸载软件只需要直接删除安装目录即可,类似于以前的大多数DOS程序。

  广义的绿色软件则不需要专门的安装程序,对系统的改变比较少,手工就可以完成操作,比如拷贝几个动态库、导入注册表或者可以借助于批处理等脚本即可直接完成。狭义的绿色软件最为理想,但现在xx符合这种定义的软件已经越来越少了,好在相当多的软件还是可以制作成广义的绿色软件。

  制作为绿色软件有何好处

  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)。查看这些文件可以理解反安装过程,{zh1}根据反安装的信息制作绿色软件。个别情况下这个文件xx不包含可读信息,就只好换用其他方法了。

  5.比较系统快照

  当前面的方法都失败的时候,可以试一试这个方法。具体思路就是在安装软件之前,把系统的状态记录下来,主要包括注册表和系统目录的所有文件状态。接下来就是安装软件,安装完成后,再一次记录系统状态。{zh1}就是比较前后两个系统状态的不同,即可得知安装程序所做的工作。

  这些工作可以由专门的软件完成,如免费工具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组件。{zh1}写一个批处理文件用Regsvr32.exe注册COM组件和用Regedit.exe导入注册表。

  通过上面分析安装程序的动作,把安装程序的工作分解为复制文件、注册COM组件、安装服务驱动、注册表配置等几个部分,虽然注册表配置可以覆盖注册COM组件、安装服务驱动等操作步骤,但是把这些步骤明显分割出来有助于制作绿色安装的软件。

  以上所列绿化软件的六种方法,由易到难,有时可能需要几个方法联合使用。绿化软件没有一条终南捷径,需要不断地分析和测试,测试时,{zh0}能到全新的系统中或别的电脑中跨平台进行。这里需要说明的是,无论使用什么方法,都是模拟软件的安装过程,所以原作者最容易给出该软件的绿色版本。

  • 例如:winrar3.30 和Winzip9.0,采用方法1,解压缩。这个方法非常简单,从天空软件站下载Winzip90.exe和winrar330sc.exe,在一个安装了Winrar的系统上,
    用鼠标右键选择下载的文件,运行右键菜单中的用Winrar打开的命令,然后把文件解压到我们的目标路径,如E:tools目录,就可以了。然后分别对Winzip9和
    Winrar进行设置就可以了。运行winzip9目录中的Winzip32.exe,进行winzip的设置。Winrar也是一样,运行Winrar.exe,打开菜单选项-〉设置,弹出一个对话框,
    选择标签--集成,如图WinrarSetting.png,逐项对Winrar设置。当拷贝到U盘而到新的机器上运行时,需要重复这些设置过程。 这一类软件的特点是安装程序的
    工作xx可以由软件自身来完成,从而xx抛开安装程序,或者说安装程序的工作也就是解压缩。类似的软件还有一些,最简单的测试办法就是看看Winrar能否
    直接打开压缩的安装程序。也可以采用方法2,过程基本上和方法1一样。 方法2就不具体说明了,仅仅指出有许多程序属于这个类别,
    如Myie2,GreenBrowser,qq,BPFTP Server,IDA_Pro_Standard_4.5.1.770,FinalData,EASYRECOVERY 6.03,腾逊公司的TM等等。
    ================
    flashget是大家用得比较多的一个软件,可以多线程下载并且下载管理的功能也很方便,从天空软件站sky.com下载flashget1.60a国际版,运行一下,
    如图flashget_wise.PNG,然后取消安装。从图上可以看出flashget1.60a国际版是使用Wise制作的安装程序,从网上下载wungui程序,非常容易的把
    安装程序解压缩到一个目录中,如图flashget160a.PNG,观察Maindir目录,其中有两个DLL文件Jccatch.dll和fgiebar.dll,进一步察看这两个动态
    库文件的导出函数,可以知道这两个DLL文件都是自注册的COM组件,
    写一个批处理文件install.bat来注册这两个DLL: REGSVR32 JCCATCH.DLL /s REGSVR32 fgiebar.dll /s 经过测试,功能正常,
    并且可以从浏览器IE中用鼠标的右键菜单xxflashget,
    功能xx,下面考虑卸载过程。
    运行Regedit.exe,发现flashget在注册表中的路径是[HKEY_CURRENT_USERSoftwareJetCarJetCar],写一个注册表文件unflashget.reg删除这个路径,如下:
    REGEDIT4 ; flashget [-HKEY_CURRENT_USERSoftwareJetCarJetCar] 同时写一个批处理文件uninstall.bat来卸载这两个DLL文件并导入unflashget.reg:
    Regedit unflashget.reg /s REGSVR32 JCCATCH.DLL /s /U REGSVR32 fgiebar.dll /s /U 随后就是删除一些我们用不到的文件,比如language目录的绝大
    多数欧洲的语言文件,这时候这个绿色版本就做好了。把制作好的绿色的flashget拷贝到U盘上,需要用的时候,直接执行里面的install.bat文件就可以了
    (注意,要在flashget的目录运行批处理文件),不需要任何文件拷贝。 我看到有人提到用优化大师提取falshget的注册表,然后直接导入注册表来制作
    绿色的flashget,这样做是不行的,从我前面的步骤来看,注册2个DLL文件必然在注册表中引入了{jd1}路径,那么如果直接提取注册表的话,就必须根据当前
    的路径来修改注册表中的路径,否则的话制作的绿色版的flashget只能在固定的目录运行。在制作flashget绿色版的时候,我同时使用了方法3和方法6,使用
    方法3的目的就是避免安装程序对系统作的修改,这样可以直接在当前系统进行测试,而不需要到另外一个没有安装过flashget的系统测试。
    ================
    Emeditor是方法1的一个反例。Emeditor可以从开发商主页下载,是一个简单好用的文本编辑器,支持多种配置,自定义颜色、字体、
    工具栏、快捷键设置,可以调整行距,避免中文排列过于紧密,具有选择文本列块的功能(按ALT 键拖动鼠标),并允许无限撤消、重做,总之功能多多,使用方便,
    是替代记事本的{zj0}编辑器。 下载emed404epx.exe后,发现用Winrar可以打开,解压后,运行Emeditor,发现丢失了预定义的多种文本格式的语法配置,看来这样
    做不行,只好采用方法5了。请随我一步步进行,步骤如下:
    1 扫描系统,制订系统快照。这里我仅仅记录当前系统的注册表(因为我认为Emeditor不会向系统目录拷贝文件,如果判断错误,就会导致"绿化"失败),
    运行ART(Advanced Registery Tracer),扫描一遍注册表。如图emeditor_snap.PNG,不要关闭ART。
    2 安装Emeditor。随便安装到哪里,反正一会就卸载。安装好后,如果需要的话,更改配置,或者配置新的文件类型,例如我就增加了NFO文件类型,设定和NFO文件
    相关联的字符集,这样可以用Emeditor直接察看NFO文件,不需要专门的察看工具了。
    3 记录系统变化。再一次扫描系统,给系统作快照,从ART里面再一次扫描注册表,然后选择菜单命令Registry-〉compare here或者直接用键盘F10,比较结果如图
    emeditor_compare.png,点击图中那个save to redo file的按钮,存储为Emeditor.reg文件,关闭ART。
    4 复制并卸载。复制安装好的Emeditor目录到其他路径,然后卸载Emeditor程序。
    5 分析。打开刚刚导出的Emeditor.reg文件,这是一个巨大的reg文件,单单是REG文件就有1兆多,不过不用担心。阅读注册表后,删除和emeditor无关的注册表项后,
    如仅仅和资源管理器相关的注册表部分,发现剩下的注册表文件可以分成3个部分。一部分在位于注册表的这个路径[HKEY_LOCAL_MACHINESOFTWAREEmSoft],里面大部分
    不涉及路径,只有一项记录了Emeditor的路径,就是"ModulePath"="h:EmEditor4";还有一大部分在注册表的这个路径下面[HKEY_CURRENT_USERSoftwareEmSoftEmEditor v3],
    里面有很多项都涉及了Emeditor的路径,如"Tmpl"="h:EmEditor4template.xml";还有就是和Emeditor和txt文件后缀向关联的注册表设置,把Emeditor设置为IE中缺省的
    源代码察看工具的注册表设置以及注册COM组件EMEDSHL.DLL的注册表部分(和InProcServer32相关的就是)。
    6 "绿化"。
    -6.1 把位于注册表路径路径[HKEY_LOCAL_MACHINESOFTWAREEmSoft]的内容存储到emeditor_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文件,或者用一个免费小工具reg2inf.exe自动转换,然后把转换得到的
    emeditor_assoc.inf文件和emeditorConf.inf文件中的路径h:EmEditor4全部用%01%代替。下面是emeditorConf.inf文件的内容:
    [Version] Signature="CHICAGO"
    [DefaultInstall] AddReg=EmeditorConf_AddReg

    hklm,"SOFTWAREEmSoftEmEditor v3Common","ModulePath",,"%01%"
    hkcu,"SoftwareEmSoftEmEditor v3ConfigC++","Tmpl",,"%01%template.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,"SoftwareEmSoftEmEditor 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","Tmpl",,"%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","Tmpl",,"%01%template.wsf"
    hkcu,"SoftwareEmSoftEmEditor v3ConfigXML","Tmpl",,"%01%template.xml"
    ** 写一个批处理文件install.bat,内容如下:
    regedit emeditor_HKLM.reg
    regedit emeditor_HKCU.reg
    RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .emeditorConf.inf
    regsvr32 EMEDSHL.DLL
    RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .emeditor_assoc.inf
    -6.5 把install.bat,emeditorConf.inf,emeditor_assoc.inf,emeditor_HKLM.reg,emeditor_HKCU.reg5个文件存储到Emeditor的目录,删除其余的注册表文件。
    -6.6 根据安装步骤和install.bat,写出相应的卸载的批处理文件,这个比较简单。 经过测试后,Emeditor工作正常,也可以注释掉install.bat的{zh1}2行语句,
    这样Emeditor就不会和系统关联,上面的步骤是在windows 2000上的,对于win9x也同样,而且win9x下面的emeditor的配置文件和windows 2000的一样,仅仅是程序
    的版本不同。 把制作好的绿色的emeditor拷贝到U盘上,需要用的时候,直接执行里面的install.bat文件就可以了(注意,要在Emeditor的目录运行批处理文件),
    不需要任何文件拷贝。这个例子演示如何自动绿色安装,如何解决路径问题,如果你用几十个类似的绿色软件,但是需要手工修改路径的话,是很难记住那些路径需
    要修改的,当然你如果可以写出自动替换路径的脚本也是可以的。我说u盘就是为了强调 路径可以变化,如果大家所使用的机器的所有分区排列都是一样的话,都是
    把软件存储到c:的话,是可以直接备份注册表的,否则需要手工修改路径,修改一个容易,多了就麻烦了。 从以上的事例中,可以看出,方法2和方法1基本一样,
    只不过方法1我们使用WinRar解压缩,而方法2我们使用安装程序解压缩。方法6可以说是方法5的简化版本,方法3和方法4也可以辅助方法5,也有一些需要联合应用这
    些方法,有时候难以判断到底使用了那个方法,方法是死的,需要灵活运用,有些时候需要不断试验。 我简单说几个软件"绿化"时候使用的方法,某些软件可能有多
    种"绿化"方法,然而{zh1}的结果基本一样: 使用方法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,OfflineExplorer acdsee,ultraedit ,IBM词典,theBat,网文快捕,和现在的CyberArticle,PartitionMagic7 使用方法6。
    不适合"绿化"的有Directx9,Mediaplayer9,IE6,微软的补丁程序,Office2003,反病毒工具NAV,Java虚拟机,虚拟机VMware等等,其中有些是不知道如何"绿化"或者
    说比较困难,如Office 2003,我认为那种把Office安装到硬盘上,然后抽去注册表的变化的方法部叫做"绿化",因为注册表文件中有大量的{jd1}路径存在,而且Offcie的
    组件之间有比较复杂的联系,所以难以"绿化"。有些是"绿化"没有意义,如IE6,微软的补丁程序,Directx9等等。 目前我使用的软件,绝大部分都"绿化"了,只有少数
    几个必须安装了,如MS Office,Visual Studio.net 2003等等。感觉非常方便,尤其是改变盘符的时候,非常简单,可以做到便携化


郑重声明:资讯 【关于软件如何制作绿化_一叶知秋_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——