绿色软件的“绿化”方法
下面讲一下绿色软件的制作,简称软件的“绿化”,绿色软件的制作实际上就是我们自己完成安装程序的工作。没有什么固定的方法,基本上是猜测加上试验,不同类别的绿色软件分别有不同的制作策略。
拿到一个新的软件,想要制成绿色软件的话,一般遵循如下步骤:
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 比较系统快照。当前面的方法都失败的时候,可以试一试这个方法。具体思路就是首先在安装软件之前,把系统的状态记录下来,主要包括注册表和系统目录的所有的文件状态。然后就是安装软件。安装完成后,再一次记录系统状态。最后就是比较前后两个系统状态的不同,而得知安装程序所做的工作。这个工作一般由专门的软件完成,ha_TotalUninstall,如免费工具Regshot,免费工具inctrl5(http://www.pcmag.com/article2/0,4149,9882,00.asp),微软公司的sysdiff工具(可以从Windows2000的资源工具箱中得到),或者WinInstall LE(在Windows 2000 Sever 光盘的目录VALUEADD/3RDPARTY/MGMT/WINSTLE/中)。在多数时候,仅仅需要对比安装前后注册表的不同,这时候还有大量的注册表工具可以选用。在得出系统差异后,把差异分解为两个部分:文件部分和注册表部分。文件部分指的是向系统目录拷贝的文件,以及作为COM组件注册的文件,还有与这些文件相关的注册表部分。注册表部分单单指其余的注册表的变化。对于文件部分,可以进一步区分出必须要往系统目录拷贝的文件(这种情况是少数)和可以放在软件的安装目录的文件。对于注册表部分,区分出由这个软件的安装程序本身所作出的注册表操作和注册COM组件时候的注册表操作,抛弃其他程序(如资源管理器Explorer)的操作。根据所有这些,写一个拷贝文件,注册COM组件和导入注册表的批处理文件,就可以完成绿色软件的制作了。当注册表文件中含有路径信息的时候,可以手工修改注册表文件或者把注册表文件转化为INF文件从而实现全自动的路径处理。
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导入注册表。
通过上面分析安装程序的动作,把安装程序的工作分解为复制文件,注册COM组件,安装服务驱动,注册表配置等几个部分,虽然注册表配置可以覆盖注册COM组件,安装服务驱动等操作步骤,但是把这些明显分割出来有助于制作绿色安装的软件。对于需要更复杂的步骤来安装的软件,还是使用原来的安装程序比较保险。

绿色软件的“绿化”方法相关推荐

  1. 绿色软件是怎么制作的?(转)

    下面讲一下绿色软件的制作,简称软件的"绿化",绿色软件的制作实际上就是我们自己完成安装程序的工作.没有什么固定的方法,基本上是猜测加上试验,不同类别的绿色软件分别有不同的制作策略. ...

  2. 什么是绿色软件,如何制作绿色软件(转载)- -

    什么是绿色软件,如何制作绿色软件(转载)- - 关于绿色软件的一篇强文,作者太能写了,呵呵 绿色软件的定义和分类 安装完操作系统后,我们一般需要安装一些常用的软件,但是随着我们常用软件的增多,这个安装 ...

  3. 绿色软件在Windows10中设置开机自启方法

    绿色免安装软件在Windows10系统中开机自启 首先创建绿色软件快捷方式,然后复制下面路径,将快捷图标剪切到该目录中 C:\ProgramData\Microsoft\Windows\Start M ...

  4. 一般软件最小化绿色文件的制作方法:

    一般软件最小化绿色文件的制作方法: | 奇幻软件坊 最小化 绿色软件的制作(KuGou7.6.80 超级精简版的制作:) 第一步,我们先利用 Total Commander制作最小化文件列表 1 通常 ...

  5. 扩展使用.INF文件-制作免安装的绿色软件

    扩展使用.INF文件-制作免安装的绿色软件 在我写的专门的文章--绿色软件的制作中(http://dream4ever.org/showthread.php?p=33652#post33652) ,讲 ...

  6. Linux学习笔记4-三种不同类型的软件的安装(绿色软件、rpm软件、源代码软件)...

    在Linux下软件分三种: 1.绿色软件:即不用安装直接就能用的软件 2.rpm安装包:以rpm结尾的可执行文件  3.源码文件:没有进行过编译和打包的文件,需要编译后再进行安装 一.绿色软件的安装 ...

  7. 【手机】Windows Mobile手机软件安装卸载方法

    智能手机功能强大,最重要的一方面就是它们可以反复的安装软件游戏以及主题等.以下罗列了智能手机上常见的几种格式软件的安装以及卸载方法. 软件.游戏的安装 在Windows Mobile手机上可安装的软件 ...

  8. macOS安装软件的正确方法

    对第一次使用Mac电脑的用户来说,安装软件是必须要做的第一件事.比如我们需要安装常用的Mac版微信.QQ.office.Photoshop.视频播放器,开发工具IDEA等等工作和娱乐需要的软件.mac ...

  9. NimotionStudio软件如何用?Studio软件的使用方法、操作流程和常见功能

    [前言] 最近听到很多客户反馈,说我们公司的电机调试软件不会用,进行不下去,找不到相关的东西,特别耗费时间....此处省略1000字,每次听完后,我都深深的自责,没有早点把教程码出来,先自罚三杯!~ ...

最新文章

  1. Python 中实用却不常见的小技巧!
  2. Win 10 终于干趴了 Win 7
  3. Java StackTraceElement getClassName()方法与示例
  4. “钉钉打卡神器”开发者被判五年半!
  5. java 强制走catch_java – IDE强制使用try / catch包围但不抛出异常
  6. Python文件的读取与写入
  7. linux usb全自动安装失败,关于使用universal usb installer 安装 archlinux 失败的问题
  8. 3D几何图形PS笔刷下载安装
  9. 营销系统优惠券模板设计
  10. R大 关于 G1 算法原理的解释说明
  11. java网站渗透测试_如何进行Web渗透测试
  12. 卡巴斯基半年激活码免费申请
  13. 论文写作课程心得体会
  14. 分享使用谷歌Colab 常用小tips, 玩转Google Colab
  15. oracle 02085,【DBLINK】“ORA-02085: database link %s connects to %s”故障排查及处理策略两则...
  16. 将m3u8格式转化为想要的格式
  17. 高通MSM8953点屏记录
  18. 深入分析实战可重入读写锁ReentrantReadWriteLock
  19. PHP 生成条形码每页44个
  20. 解决谷歌、qq、edge、360、火狐浏览器打不开Axure原型图问题

热门文章

  1. 解密微信小程序用户敏感数据获取用户信息
  2. Mac M1芯片处理器能用的Bridge 2020/2019 for mac 解决M1版MAC安装BR无法安装问题 完美支持M1芯片处理器
  3. 发送邮件功能:使用Spring Email、邮件工具类、使用Thymeleaf模板引擎 发送html邮件
  4. 计算机管理器用户怎么打开文件,电脑文件管理器怎么打开文件夹 文件管理器打开想要的文件夹方法-电脑教程...
  5. 如何利用SEO方式使网站增加流量
  6. 使用multcloud在云盘之间传送文件
  7. Docker -v 对挂载的目录没有权限 Permission denied解决办法
  8. 带你了解什么是抽象类,抽象类不能够被实例化为什么还有构造方法?
  9. 1K2G保驾护航,无穷小真理放光芒
  10. Kaggle数据集之电信客户流失数据分析(三)之决策树分类