光纤熔接 ERP

弱电论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1321|回复: 0
打印 上一主题 下一主题

绿色软件的"绿化"方法

[复制链接]
跳转到指定楼层
1#
发表于 2005-10-20 18:59:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
华为代理商


下面讲一下绿色软件的制作,简称软件的"绿化",绿色软件的制作实际上就是我们自己完成安装程序的工作。没有什么固定的方法,基本上是猜测加上试验,不同类别的绿色软件分别有不同的制作策略。 拿到一个新的软件,想要制成绿色软件的话,我一般遵循如下步骤:
1 判断。就是指猜测这个软件能不能制成绿色软件,从功能,从你对它的了解,如果你觉得这个软件和系统的关系非常紧密,就不要继续下去了,还是用原始的安装程序最保险最方便,这样的例子有directx9 ,IE6,Norton的反病毒软件等等。这样的判断可以节省你的时间,当然你可以忽略这一步,尝试制作绿色软件,那么就转到第2步。
2"绿化"。对于不同的软件有不同的方法,没有一定的规则,但是总的来说,就是理解软件的安装过程,转换为绿色安装,在这个过程中,可能需要尝试多个方法,也可能最后由于软件的复杂性或者某些特性,导致无法绿化。要有失败的思想准备,具体的绿化方法随后讲述。
3 测试。"绿化"后的测试最好到你个全新安装的操作系统中测试,而且如果你要在多个操作系统中使用这个软件的话,还要在其他的操作系统中测试,有的软件的文件随着操作系统的不同而不同,这个时候你需要在不同的操作系统中进行"绿化"过程,最后综合为一个完整的适应多个操作平台的绿色软件。 "绿化"方法,需要根据经验选择不同的"绿化"方法,也可能需要不断尝试不同的方法,直到成功为止。按照先易后难的次序,具体的方法包括:
1 解压缩。这是最简单的一种方法,就是指尝试能不能直接解开软件的压缩包。用Winzip和Winrar试一试,看看能不能直接打开压缩的安装文件,如果不能打开,那么就换别的方法。如果可以,那么恭喜,这个软件多半是属于绿色安装的软件(有个别例外,如EmEditor),把压缩包中的文件直接解压到目标路径,然后测试软件的功能是否正常,如果功能正常,那么"绿化"就成功了,如果使用不正常,那么就换别的方法。这一类软件的特点是安装程序的工作完全可以由软件自身来完成。
2 安装然后卸载。也是比较容易的方法,完全是体力劳动,就是指直接安装这个软件,然后把程序复制出来,最后卸载安装程序。如果这个软件的安装程序的作用仅仅是复制文件和生成快捷键等工作,那么就属于绿色安装,可以使用这个方法。最后测试软件的功能是否正常,如果功能正常,那么"绿化"就成功了,如果使用不正常,那么就换别的方法。
3 反编译安装程序。这个方法需要动脑筋,就是根据安装程序所用的制作工具,选择相应的反编译程序,然后阅读反编译出的安装脚本,制作绿色软件。目前的软件大多使用专门的安装工具制作,如InstallShield,Wise,Inno Setup,Windows Installer,NSIS(Nullsoft),Installer VISE,其中Windows Installer格式的安装文件(就是MSI,MST为后缀的文件),可以通过微软的免费工具Orca打开查看,InstallShield格式的安装文件也有很多免费的工具可以解压缩和查看脚本。当然专门的安装工具很多,有许多安装程序没有相应的反编译程序,这种时候,就无法使用这个方法了。 4 观察反安装程序和log文件。现在的软件安装完成后绝大多数都带有卸载方法。卸载是安装的逆过程,如果知道怎么卸载,那么也可以推测出如何安装。由专门的安装工具制作的反安装程序,一般都是根据某一个文件中的信息来卸载的,可以用一个纯文本的编辑器打开这个文件。个别情况下这个文件完全不包含可读信息,就只好换用其他方法了。具体过程就是先采用方法2,然后理解反安装过程,最后根据反安装的信息制作绿色软件。
5 比较系统快照。当前面的方法都失败的时候,可以试一试这个方法。具体思路就是首先在安装软件之前,把系统的状态记录下来,主要包括注册表和系统目录的所有的文件状态。然后就是安装软件。安装完成后,再一次记录系统状态。最后就是比较前后两个系统状态的不同,而得知安装程序所做的工作。这个工作一般由专门的软件完成,如免费工具Regshot,免费工具inctrl5(
http://www.emurasoft.com/下载,是一个简单好用的文本编辑器,支持多种配置,自定义颜色、字体、工具栏、快捷键设置,可以调整行距,避免中文排列过于紧密,具有选择文本列块的功能(按ALT 键拖动鼠标),并允许无限撤消、重做,总之功能多多,使用方便,是替代记事本的最佳编辑器。 下载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_MACHINE\\SOFTWARE\\EmSoft],里面大部分不涉及路径,只有一项记录了Emeditor的路径,就是\"ModulePath\"=\"h:\\\\EmEditor4\\\\\";还有一大部分在注册表的这个路径下面[HKEY_CURRENT_USER\\Software\\EmSoft\\EmEditor v3],里面有很多项都涉及了Emeditor的路径,如\"Tmpl\"=\"h:\\\\EmEditor4\\\\template.xml\" target="_blank">

6 "绿化"。
6.1 把位于注册表路径路径[HKEY_LOCAL_MACHINE\\SOFTWARE\\EmSoft]的内容存储到emeditor_HKLM.reg文件中,把位于注册表路径[HKEY_CURRENT_USER\\Software\\EmSoft\\EmEditor 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,\"SOFTWARE\\EmSoft\\EmEditor v3\\Common\",\"ModulePath\",,\"%01%\\\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\C++\",\"Tmpl\",,\"%01%\\template.cpp\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\CSS\",\"Tmpl\",,\"%01%\\template.css\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\HTML\",\"Tmpl\",,\"%01%\\template.htm\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\Java\",\"Tmpl\",,\"%01%\\template.java\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\Javascript\",\"Tmpl\",,\"%01%\\template.js\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\JSP\",\"Tmpl\",,\"%01%\\template.jsp\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\erl\",\"Tmpl\",,\"%01%\\template.pl\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\HP\",\"Tmpl\",,\"%01%\\template.php\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\ython\",\"Tmpl\",,\"%01%\\template.py\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\Ruby\",\"Tmpl\",,\"%01%\\template.rb\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\TeX\",\"Tmpl\",,\"%01%\\template.tex\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\VBscript\",\"Tmpl\",,\"%01%\\template.vbs\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\VBscript for EmEditor\",\"Tmpl\",,\"%01%\\template.vbee\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\Windows script\",\"Tmpl\",,\"%01%\\template.wsf\"
hkcu,\"Software\\EmSoft\\EmEditor v3\\Config\\XML\",\"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的最后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,也有一些需要联合应用这些方法,有时候难以判断到底使用了那个方法,方法是死的,需要灵活运用,有些时候需要不断试验。 我简单说几个软件"绿化"时候使用的方法,某些软件可能有多种"绿化"方法,然而最后的结果基本一样: 使用方法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安装到硬盘上,然后抽去注册表的变化的方法部叫做"绿化",因为注册表文件中有大量的绝对路径存在,而且Offcie的组件之间有比较复杂的联系,所以难以"绿化"。有些是"绿化"没有意义,如IE6,微软的补丁程序,Directx9等等。 目前我使用的软件,绝大部分都"绿化"了,只有少数几个必须安装了,如MS Office,Visual Studio.net 2003等等。感觉非常方便,尤其是改变盘符的时候,非常简单,可以做到便携化。

绿色软件自己做!
  绿色软件以其小巧实用、无需安装、不给系统增加垃圾文件而受到广大用户的青睐。可惜目前网络上提供的绿色软件较少,在功能应用上也比较单一。如果我们常用的,如文字图像处理、杀毒、多媒体等类型软件都是绿色的,那该多好啊!利用Windows优化大师,就能实现这一梦想。 下载安装完成后,运行优化大师,在左方的功能列表中点击进入"系统清理维护"类别中的"软件智能卸载",页面上方的程序列表中提供了当前电脑中已经安装的全部应用程序名单,先在该名单中选择一个要制作成绿色软件的目标软件,然后点击右边的"分析"按钮,优化大师即开始智能分析与该应用程序相关的信息(如果要分析的软件没有出现在列表中,请点击"其他"按钮,手动选择要分析的软件)。 这里笔者以选择FlashGet(网际快车)为例,详细讲述优化大师如何制作软件的绿色运行版。 根据所分析软件的大小以及复杂程度,智能分析大概需要几十秒到数分钟不等的时间,待分析完成后,即可在下方的关联文件框中看到该软件正常运行时所需要的所有文件,注册表键值信息也在其中,如图1所示。请将这些注册表键值先行记下,单击"卸载"按钮,优化大师开始备份相关的注册表信息和文件信息,接着进行卸载操作。卸载完毕后,刚才所有被智能分析的文件,都被保存到了Windows优化大师安装目录下的\Backup\UninstallFiles文件夹中,将这里的文件全部复制提取出来,放在一个新文件夹中,例如笔者为该文件夹起名为"FlashGet绿色安装包"。 在"开始→运行"中输入regedit命令,打开注册表编辑器,依次选择"编辑→查找",在"查找目标"中输入刚才记下的注册表键值名称和相应键值(如图2所示)。找到后,在该键值上单击右键,选择"导出"命令,将软件的注册表文件全部导出到之前的"FlashGet绿色安装包"文件夹中。这样FlashGet的绿色软件安装包就做好了。 将该安装包拷贝到未安装FlashGet的电脑上,双击安装包中的".reg"文件,导入注册表信息,最后执行软件主程序,FlashGet就能够在这台电脑上运行了。
小提示:在理论上,以此种方法可以将所有软件全部制作成绿色运行版,但由于大型软件的注册表键值和关联文件为数众多,在查找时需要耗费大量的时间,这就违背了绿色软件"精简易用"的宗旨,因此建议大家以此法制作大小在50M以下的中小软件为佳。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|广告咨询|VIP注册|关于我们|联系我们|积分规则|手机版|Archiver|弱电之家论坛 ( 京ICP备11008917号-3 )

GMT+8, 2025-6-23 22:59 , Processed in 0.059567 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表