社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 2325阅读
  • 20回复

[分享]绿色软件知识大全!

楼层直达
级别: 光盘新手
发帖
287
飞翔币
135
威望
13
飞扬币
4350
信誉值
0
绿色软件,实在方便!

本楼: 什么是纯绿色软件
1楼:制作迷你软件三步
2楼:绿软的绿化方法
3楼:bat批处理教程(1)
4楼:bat批处理教程(2)
5楼:批处理文件制作实例精彩教程


6楼:软件版本详细介绍
7楼:绿色软件命名规则
8楼:通杀各种exe安装程序
9楼:绿色软件的定义和分类
10楼:自制绿色软件-打造最傻瓜的软件安装包
11楼:扩展使用.INF文件-制作免安装的绿色软件
12楼:双系统互救安装法
13楼:软件精简与绿化专题之概念篇
14楼:呼吁“绿色软件




                                        什么是纯绿色软件?


绿色软件有如下严格特征:
1、不对注册表进行任何操作(或只进行非常少的,一般朋友能理解的操作,典型的是开机起动。少数也进行一些临时操作,一般在程序结束前会自动清除写入的信息)。
2、不对系统敏感区进行操作,一般包括系统起动区根目录、安装目录(windows目录)、程序目录(Program Files)、帐户专用目录。
3、不向非自身所在目录外的目录进行任何写操作。
4、因为程序运行本身不对除本身所在目录外的任何文件产生任何影响,所以,根本不存在安装和卸载问题。
5、程序的删除,只要把程序所在目录和对应的快捷方式删了就可以了(如果你手工在桌面或其它位置设了快捷方式),只要这样做了,程序就完全干净地从你的电脑里删去了,不留任何垃圾。

以上就是绿色软件的特征。

对于编程人员来说,做一个绿色软件不难,做一个非绿色软件也不难,但是为什么那么多软件不做成绿色的呢?下面作一些讲解:

一、大型软件公司的大型软件为什么不做成绿色的:
1、大型软件公司并非没有能力做出绿色软件,但它们的软件涉及的方面过多,需要对系统原有的一些设置进行改动,以使电脑按照软件设计要求进行操作。以PhotoShop为例,它就需要在注册表里添加很多种格式文件的默认打开方法为PhtoShop.exe,以便大家双击此类文件后就自动打开PhotoShop以便编辑。
2、为了更好的为一些对电脑知识不是很了解的朋友进行一些自动设定。还是以PhotoShop为例,这儿已经有朋友发布了解压即可用的,但是,还是不少的朋友,连解压也不会,解压后都不知道点哪个文件开始正常运行,也不知道怎么在桌面上建快捷方式。就算别人为他做完了上面的事,要是有一天,他不想要PhotoShop了,也不知道原来安装的程序在哪个目录,怎么删去,甚至不知道如何删除快捷方式,更别说如何完全干净的删除了。做成安装版就可以自动为使用者完成上面的事了。

(特别说明:上面对PhotoShop的举例,只是用它来举例罢了,其实网上流行的解压即可用的PhotoShop也不是严格的绿色软件,其运行还是会写注册表的,如果不正常的使用它,注册表里还是会留下垃圾的,不过,这种垃圾对你的电脑影响不是很大,会的朋友可以手动删除这些垃圾)

二、做成安装软件很难吗?那些所谓写绿色软件的人是不懂windows编程,根本就写不出注册的过程吗。
1、我只能说,某些人的这种说法是一种非常不负责任的说法。其人根本不懂得编程,可笑而幼稚,只能以电脑肓来称呼。
2、现在流行的各种编程软件分三大类:
A、第一类是微软出的编程软件。
  有Visual Studio系列(流行版本为6.0)以及新出不是很久的VS.NET系列,它们都自带了安装发布功能。特别是Visual Studio中的VB做出的东西,如果不发布,或不进行相关的处理,在别的没有安装VB的机器上是根本运行不起来的,因为VB编译出来的程序在根本上是伪编译,其指令通过VB运行库转译后运行,没有VB运行库的机器是根本无法正常运行此类程序的。当然了,有经验的朋友可以手工把运行库复制入相应的目录中,或是和VB做出的程序放在一起。其它的Visual Studio做出的程序有的有类似的上述情况。
  在微软出品的VS.NET中,VS.NET兼容了多种编程语言,但按其说法,最终的代码其根本实质会变成一致。但是它做出的也同样是伪代码,也就是说,其代码不是根本上的机器二进制代码,不对机器进行直接指令指示,而是向.NET运行环境(NET Framework接口)发出指令,而由NET Framework转译指令为机器代码,再进行持行。这就要求你的机器上安装了NET Framework。NET Framework在win95/win98/windows2000上默认是没有安装的,如要安装,需要从网上下载或其它方式得到后安装。(微软官方有下载,大家也可以使用windows updata得到)。XP、windows 2003已集成。最后要说的是,微软宣言,要将原来的API接口(windows一直使用的标准编程接口)作废,改用.NET接口,故.NET编程方式可能是将来的标准方式。VS.NET系列的软件也集成了通用安装发布软件,只要正确掌握它,就能很好的做出楼主所谓的安装程序。

B、第二类软件是大名鼎鼎的Borland公司出品的编程软件,它也包括两大系列。即API系列和.NET系列。其.Net系列的情况和VS.NET是类似的。而其API的情况就有些不同了。
  Borland的Borland C++Builder和Borland Delphi是两种非常流行的针对win进行API编程的编程环境。他们也带有install shield,可以说是编程人员必学的。不过,很多的稍简单的程序,编制者并不用它,因为,使用Borland C++Builder/Delphi开发出来的程序,只要正确设定几个参数,编译后得出的程序就可以在几乎所有版本的win中很好的直接运行了,当前,前提是,没有使用有特殊要求的第三方控件,或某些必要特别设定的数据源(BDE等)。而且,稍熟练的编制者可以直接在程序中通过程序自行进行一些简单的环境设定,如写注册表(关联文件、开机起动)、利用资源文件的方式向重要的目录写入文件,注册组件等等,可以说一点儿也不难。

C、第三类是一些比较偏的编程语言了,如易语言等,使用的人很少,本人很老实的说,具体情况我也不是很了解。

三、为什么一些个人的简单的软件会做成非绿色的:
1、编写者水平太低。低到只会使用微软的VB等,虽然做出的东西也值得一用,但是不知道怎么把它变成绿色的,只能依靠VB等本身的功能以保证程序的正常运行。
2、编写者懒,写出程序后想,只要程序能正常让别人用就可以了,不值得太费脑子,依靠VB等本身的功能发布吧,反正这样保险。
3、编写者水平不低,也不懒,但是它的程序用到了一些第三方控件,这些控件需要发布安装才能正常运行(需要注册特定的.DLL,需要把一些文件放到特定的位置,如典型的,要放入windows下的system32目录中。)
4、编写者为一些水平实在太低的人考虑,为了那些人的方便,如典型的《笨笨钟》就是此类,《FoxMail》、《winamp》也是此类,当然,FoxMail、《winamp》是写注册表的,通过其主程序进行一些环境的设定,严格上来说,也不是纯绿的。
5、编写者有一些特定的,不想为人知的东西要放入你的机器。比如典型的《阿达连连看》就是这样,它要把一些特定的与注册相关的东西放入你的windows目录,而且不想被人发现。又如网际快车的某些版本,它要把广告程序代码放入你的windows安装目录。
6、编写者有恶意,它的程序其实捆绑了木马、病毒等(对这一类的就要非常小心了),在安装的过程中这些恶意的程序就会释放出在,不知不觉中潜入你的计算机。

四、是否可以做出功能复杂,但又是严格意义上的纯绿软件:
答案是非常肯定的,因为,其实我们正在使用的很多程序都是纯绿的,特别是很多的游戏,虽然它们也要安装后才能运行,其实,你把它们安装后的目录放在别的机器上也一样的可以使用,并不必再次安装,其安装的意义就是***编写者为一些水平实在太低的人考虑***,如《三角洲》、《魔兽争霸III》。特别如网络游戏《传奇》(这个程序写的是真的很经典了,决对纯绿)等等著名的游戏都是如此。其需要设定的环境记录可以不写在注册表内,而利用*.INI文件来记录。我不知道有几个人有胆子说编写这些程序的人水平低下。

五、综上所述:
1、要做出一个纯绿色的软件,并不是很难,当然,可能要求编制者更多的依靠自已去写代码(在必要情况下),在程序涉及方面比较多的情况下,可能给编制者加重很多的工作量。而要做一个非纯绿的软件,那就更容易了,往往可以利用编写器的一些自带功能自动完成。
2、纯绿的不带安装功能的软件非常适合于对电脑比较熟悉的朋友使用,而绿色带安装的软件适合于所有人使用。而自以为对电脑很熟的朋友往往更喜欢不带安装功能就可以用的。原因有如下:带安装的软件往往会有反安装程序,如果安装目录被人为删去,反安装程序或一些相关注册表信息往会留在机器中,成为垃圾。
3、为了自已的机器的安全、快速,也为了知情权(一个程序到底在安装和使用过程中在自已的机器里写了什么),本人极力推荐纯绿的软件。即便在必要的情况下非纯绿,也希望有详细的说明。说明软件可能会写注册表的那些部分,会改动机器里的哪些文件,会向哪些目录写入什么文件,内容。而且,希望这成为软件界的一个标准。这样,我们的电脑才会有安全可言!
4、为什么现在流行的软件中真正纯绿的软件不是很多呢?这个问题很不好回答。在这儿可以非常遗憾的告诉大家,有些朋友在网上下载的winrar绿色版、winamp绿色版等等,都不是真正意义上的纯绿软件。

比如winrar,它就因为为了在鼠标右键上出winrar的功能菜单而写动了注册表,因为要关联比如扩展名为.rar等等的文件(这些都可以在winrar程序里设定和更改)而写动了注册表。如果使用winrar后,强行把winrar程序目录删去,注册表里的这一部分注册表信息必然成为垃圾(其它的也许有本人没有发现的动作,如没有说出来是本人水平不足的问题了,呵呵)。

winamp绿色版似乎要好一些(本人的感觉),如果你设定了一些文件的关联,如双击*.mp3等文件winamp就会自动打开播放的话,你强行删去winamp所在目录,这部分文件的关联信息也会成为垃圾留在注册表中。

(上面两个只是举例,解决办法很多对电脑熟悉的朋友是会的,在这儿,我们并不讨解决办法,另外,应该说,上面两程序是很规范的东西,它们的这些动作是无可厚非的)

现在再回过头来说说“流行的软件中真正纯绿的软件不是很多”。
A、有些功能是非通过写注册表来实现不可,最最常见的就是文件关联、鼠标右键菜单。(呵呵,这种操作可以说,稍熟编程的人都会)。但是很少有个人编写者考虑到别人不用他的程序时,要怎么让使用者方便地复位这些文件关联,方便地清理右键菜单。
B、部分程序编写者喜欢把注册信息放在注册表中。(为什么喜欢?就因为注册表是庞大的参数库,他们以为,要从这样一个大参数库找出他们写入的一个信息是大海捞针。事实上,的确很多朋友是难以找出来的,话又说回来,会者不难,难者不会,在这儿我也不细说了)
C、一些大公司的程序实在对系统有太多的改动,他们做好了安装和卸载工具,这些软件涉及了系统的方方面面,想简单的删除是很难的。典型的就如微软的Office等等。这些软件说实在的,别说你不老实的删除了,就是老实的卸载,有时也是很难成功的。最好的办法就是装上后就别卸把,把它看成是系统的一部分(不管你乐不乐意,呵呵)。(又及,这类程序也不是很少,这儿只举一例)。
D、只有那些其功能可以不涉及更改系统默认行为的软件才可能在真正意义上做到纯绿。((也许我罗嗦了)系统默认行为包括“文件关联”,“右键菜单”,“控制面版”里的项目,真实或虚拟的硬件驱动以及其它我想不起来或是我也不知道的东西……)。当然了,还要编写者有真正的为使用者着想的精神,有较好的技术。

六、有部分并非纯绿的软件,伪装成纯绿的,在运行过程中向注册表写东西,向关键目录区写东西,甚至更改重要文件。这不是纯绿软件,只能说是伪纯绿。又及,很多网上流行的软件,号称纯绿版,实际上只是一些原版本经过稍许改进等,原软件并不设计为纯绿,在运行过程中还是会写注册表(甚至写关键win目录),也不是严格意义上的纯绿。

反过来,也有部分其实是纯绿的软件,为了大家的方便,做成了安装发布式的。比如最典型的就是《传奇》《三角洲》、《魔兽争霸III》等一些游戏,一些工作软件如《FOXMAIL》(FoxMail至少在针对IE选项里的“程序”页里的"电子邮件"相关项进行了注册表相关写操作)《winamp》《winrar》等等准绿软件(在这儿,我只说它们是准绿的)也是如此。这类软件其实安装出来后,把其目录放在任何一台电脑上都能或者能较为正常的运行,这也是为什么大家能很方便的把它们改造成绿色软件的原因。

现在真正的纯绿软件实际上是很少的,至于以后,也还是看不到纯绿一统天下的希望的,大家不可因噎废食。不可能只用纯绿软件而不用其它。而且大公司的软件一般还是非常可靠的。

七、非纯绿软件的危害:
1、向系统关键目录或不属于该程序所在目录乱存放文件(默认临时文件夹除外)在原则上对机器的运行速度是没有大的影响的,除非乱放的文件改动了原有的系统关键文件,才会至使电脑变慢或运行不正常。但是,因为这些目录中的文件一般都比较多,很难对它们进行清理(鬼才知道哪个是能删,那个不能删),会使你的硬盘空间浪费,对于硬盘空间紧的朋友,那就非常讨厌了(此外,心里也不爽)。

2、向注册表乱写信息,如果乱写的信息并不影响系统的关键部分,对系统运行也是没有严重影响的,不过,有些信息写入了不删去,你的系统就会有些讨厌的东西出来,举例:你装上winrar后(典型安装设置),直接把winrar删了,你就会发现,你的右键菜单里会多出一些让人哭笑不得的东西。要注意的是,随着机器的使用,软件的安装、删除,这些可以感觉到和不能感觉到的信息会越来越多,而你的机器在运行过程中,几乎随时随刻不能离开对注册表的相关操作,注册表里的信息过多,机器查找所需信息的速度就会变慢,这时,机器的运行就表现为“变慢了”,这往往是一台电脑为什么越用越慢的最重要的原因之一。(提示:因为多数情况下,一个软件对注册表写的东西并不多,所以,在每一次垃圾进去了,用户是很难感觉到影响的)(又及,一些注册表清理软件,本人也用过,虽有作用,但是风险不少,是好是坏我也不知怎么评价……)。这些垃圾信息并非只有小公司的软件会留下,很多大公司的软件据本人的感觉,也是会留垃圾的,本人也很无耐。

解决办法吗?恕本人无能,在当今软件乱世,只怕多少有些无可耐何。本人是使用最笨的方法:Ghost镜像还原。基本上每三至四个月给它倒回一次。(工作文档等当然不能放在系统区了,呵呵)。

八、希望无知者不要信口开河,多多学习。最后,附上一个我自已做的纯绿软件---BCB编写的《水波特效演示》程序,给大家玩玩叭。

补充——初步判断一个软件是否纯绿软件的方法
(注,只有对电脑比较熟悉的人能才办到,如果下面的说明,你基本能看懂,而无需请教别人,你就能做到了):
一、系统测试法:
1、将软件在别人的机器上安装,安装完成后,把安装出来的目录复制到你的机器中(如果本身就号称纯绿免装的,这步就免了)。
2、你的机器要求安装windows2000 或 windows XP 或 windows2003,使用受限用户登录(要求受限用户无对关键注册表有写权,无对重要目录有写权,当然了,默认的新建的用户就是这样的(XP下要将用户设为受限))。
3、受限用户登录后运行复制来的安装目录下的软件的主程序,如果正常,90%是纯绿。
4、对省下10%的说明——不排除可能编写者隐了动作,如果不成功也不报错,也不退出,还正常运行,一但能写的时就它就写。另外,还有一部分程序,如FoxMail,只对当前帐户相关于注册表进行写操作,因为“帐户相关于注册表"是"属于"对应帐户的,在受限帐号下也是可写的(特别说明一下,注销该帐户,注册表中该帐户的所有项目都会清去,所以也可以算是绿的)。
二、软件监控法:
1、如果上面的步子还不令你放心,还有一个工具值得一用,那就是《Filemon》,这是一个可以监视系统中任何软件对硬盘的读写操作的程序,通过它,你可以查到某个程序对你的硬盘的什么位置的什么文件进行了操作,这个程序只能在管理员帐户下用(切入系统进程)。
2、对于注册表的监视是很麻烦的事,《Regmon》可以办到,同上面的工具一样Regmon要求在管理员帐户下用(切入系统进程)。
3、90%的软件和上面的两个软件无冲突,省下的9%的是作者有意防止被监视(为什么有意防止被监,那你就自个想吧,一般都是比较可怕的东西),最后1%可能是因为程序实在相互不兼容了。

以上两工具都为同一公司(Sysinternals)出品,值得一用,附在最后(XTJS.rar)。

三、并非所有的不能在受限帐户下用的程序都不是纯绿的。某些程序可能要切入别的系统程序中,某些程序需要得到硬件信息等,这些最只有在管理员帐户下才能实现。还有一些程序可能没有考虑多用户操作系统等。只能说,通过了上面的测试的程序90%是纯绿的,没有通过的话90%是非纯绿的。有经验的朋友还可以据自已的经验得到更准确的结论。
 
《=◆天賦異能 誰與爭鋒 妳的電腦 我的權限◆=》
级别: 光盘高级
发帖
1201
飞翔币
69
威望
1789
飞扬币
3564
信誉值
0

只看该作者 20 发表于: 2008-03-07
谢谢楼主,好好学习.
级别: 光盘新手
发帖
139
飞翔币
335
威望
13
飞扬币
361
信誉值
0
只看该作者 19 发表于: 2008-03-06
非常不错~~
强顶
慢慢学习,看来LZ是这方面行家,以后多请教咯
飞扬小菜
QQ:84084621
IT群:7206242
级别: 光盘初级
发帖
842
飞翔币
384
威望
218
飞扬币
910
信誉值
0
只看该作者 18 发表于: 2008-03-06
谢谢民!太详细了,已收藏
级别: 技术专家
发帖
1280
飞翔币
176
威望
1553
飞扬币
1216
信誉值
0

只看该作者 17 发表于: 2008-03-06
楼主辛苦啦!多谢分享
级别: 光盘新手
发帖
287
飞翔币
135
威望
13
飞扬币
4350
信誉值
0
只看该作者 16 发表于: 2008-03-06
沙发。。。朋友们。。看帖回帖。。做人的基本道德。。。你的回帖。。我的动力。。。。
《=◆天賦異能 誰與爭鋒 妳的電腦 我的權限◆=》
级别: 光盘新手
发帖
287
飞翔币
135
威望
13
飞扬币
4350
信誉值
0
只看该作者 15 发表于: 2008-03-06
以上内容部分摘自互联网。。。部分属于原创。。如有雷同。。。纯属巧合。。。沙发
《=◆天賦異能 誰與爭鋒 妳的電腦 我的權限◆=》
级别: 光盘新手
发帖
287
飞翔币
135
威望
13
飞扬币
4350
信誉值
0
只看该作者 14 发表于: 2008-03-06
呼吁“绿色软件”

  品位越来越高的现代人,对生活的质量的要求也越来越高了:吃的是绿色食品,穿着是绿色纺织物。在各个方面都讲究天然环保。我们开发和使用软件的人都是有知识,有素质的“新人类”,塔着前进的步伐,立足时代的前沿,我们更应该时刻注意自己的言行,为绿色环保做出我们的努力,所以在这里我们要呼吁有识之士开发“绿色软件”,使用“绿色软件”。

  纵观当今计算机硬件,你不难发现最便宜的东西非硬盘莫属。想起我当年卖计算机时4GB的硬盘大概是1400元。可是今非昔比,1400元卖个30GB的硬盘甚至更大的也不是什么大问题,哎!回想起硬盘的发展史我们不难发现这个过程也是软件的膨胀史。从原来Windows3.2的数十兆,到现在Windows2000的650MB,甚至要吞掉我1GB的硬盘。算算我就4GB硬盘减去650MB装Windows2000,500MB装Office2000,150MB做虚拟硬盘,200MB做备份,100MB装photoshop5.5和Flash4.0及VB6.0。这样一来我的1.6GB硬盘就没了,格式化以后还剩3.8GB,等于最后我还剩下2.2GB的硬盘。就现在而言2.2GB能干什么呢?一个游戏《笑傲江湖》需要1.2GB左右的空间进行安装。看VCD听音乐需要《超级解霸2000》,这也需要50MB!留几首MP3也是百兆左右。装这个软件那个软件不一会儿三四百兆的空间就没了。照这个趋势下去15GB左右的硬盘被吃掉就在不远的明天。这是科技发展使得我们的硬盘越来越大,还是硬件厂商和软件厂商串通好了共同骗咱们老百姓的钱?! 使得咱们这些穷老百姓不得一次又一次勒紧裤腰带去寻求更快更快的CPU、更大的内存和硬盘。不过从另一个侧面我们也不难看出软件是硬件的推助器(黑暗呀!)不过这也是科技发展的必然,也可以理解为软件是计算机领域科技和经济发展的动力。

  不过说这么多,我们还是非常有必要谈谈现在各类软件是否需要做得这么大吗?现在的软件有必要都安装吗?甚至把所有的文件都拷贝到硬盘上再使用吗?现在的软件都有必要在注册表中写入许多信息吗?就拿SONY公司的著名游戏机PS上的游戏软件来说,没有一个需要安装的。但是运行效果都是有目共睹的,只不过间隙读盘时间稍长。现在我们用的光驱普遍都在24速以上,主流光驱都在44速左右足以弥补这个缺陷,更何况现在电脑游戏在设计时读盘速度也很慢,即使把所有的文件都装在硬盘上(如:《烈火文明》)。再看看PS,都相当于一个P166MMX配上一块voodoo外加16MB内存ISA声卡。而现在我们使用的计算机最慢也是PII,大多数人都是主频超过500Mhz的PIII赛扬或K7,配上64MB内存甚至128MB内存,一块16~32MB的3D加速卡、一块PCI声卡。但在这么高的配置下面,我们还是需要300MB以上的硬盘来安装文件。我们不禁要问有必要吗?像《古墓丽影》在安装运行程序和图标进度文件不到2MB运行的效果不是也很好吗?但一些2D游戏或是其它不是非要把文件拷到硬盘的软件干嘛要占据我们那么多的硬盘(抗议,打倒法西斯!)

  再让我们看看现在体形庞大的软件都给我们提供了一些什么东西,如在word中庞大的数据让我们来处理宏(宏病毒?)。我不禁要问了有多少人会用宏编辑器,有多少人需要宏编辑器?!为什么我们在安装使用时非要我们强制安装?!在安装各类软件时我们总需要安装这样或那样的格式转换器,(每个厂家都有每个厂家的软件标准,每个软件都有自己的格式)。这样一来使我们使用时既浪费时间资源,又无形中浪费我们的空间,给我们带来了诸多的不便,各类形形色色的扩展名也的的确确难倒众多的“小鸟们”。令他们困惑,使他们不解。各个厂家为了保护自己的产品,提出各种各样的标准,给计算机平民化的今天涂上了一层无形的障碍,我们不禁又要问,这未免太自私了吧?众多格式的推出也使得我们计算机越来越不稳定,众多软件的互相斗争,使得我们的计算机不堪重负,最终当机,损失了我们的时间、数据和金钱呀!

  我认为现在呼吁“绿色软件”不光要呼吁它的使用平民化、安装简易化,我认为还要符合中国的国情,做到价格大众化。一套Windows98正版软件要千元,一套Office2000软件需要2000元,而其中我们只能使用全部功能的10%到20%,也就是说享受了200元到400元,其余浪费。更不用说一些专业软件了,虽然(商家立场)这些软件制作成本很高,但是(用户立场)像最近炒得很热的软件Linux和成千上万共享软件、免费软件来看他们不乏精品(像Foxmail、Natants、Winamp、文杰等)而他们却存在平易近人的价格和独具匠心的功能且他们小而精,不用吞掉我们上百兆的硬盘。广大计算机迷们可能是经常到D版(D=盗)市场溜达一圈我们不难发现在D版市场很热销的软件往往都是价格很高的软件,这样一来没人会再去理会知识产权使得本来是制作商开发商和正规批发销售人员双赢的局面变成了盗版商和用户双赢的局面。其实我们用户又何尝不想和正规厂家双赢呢?只可惜……哎!不过现在中国的众多厂商已经懂得价格对消费的直接影响,使我们获得了一批做工优秀、性价比极高的软件,厂商自身也火了一把(如:金山公司在前一段时间搞的红色风暴活动使众多消费者实惠了一会,看看我们手中的软件像《金山词霸2000》、《金山快译2000》之类的软件一定是正版的),呼吁那些大公司研发的软件,不要带着一股大国沙文主义的色彩,要懂得本地平民化的重要性。

  开发和使用绿色软件是众望所归,需要我们的开发人员加强责任心,使用者多为软件提出中肯的意见。使用平民化、安装简易化、价格大众化只是我们开发“绿色软件”的第一步,但走出这步也确实不易,前途上充满了坎坷,经济利益的驱使,确实使我们很难迈这一步,但我们深信等到雨过天晴后再回首路途的泥泞憧憬前程的光明,这一小步又算得了什么?总之,“绿色软件”的开发,势在必行!
《=◆天賦異能 誰與爭鋒 妳的電腦 我的權限◆=》
级别: 光盘新手
发帖
287
飞翔币
135
威望
13
飞扬币
4350
信誉值
0
只看该作者 13 发表于: 2008-03-06
软件精简与绿化专题之概念篇

现在的软件,功能一个比一个多,个头一个比一个大,安装时间也是超级长,平时还不觉得,但如果系统重装,那就有的累了,一个系统安装只花半小时 ,但安装常用软件却得花半天!那么多的功能都是用的到的吗?软件能不能做的小一点?软件就一定要安装后才能使用吗?带着这些疑问,《家用电脑》在本期推出了软件精简与绿化专题,希望读者们看了此文后,能够亲自动手,让我们的软件变得更瘦更方便。
精简软件的概念

现在的软件越做越大,功能越来越丰富,但是对于很多普通用户来说,许多功能都是根本用不到的,甚至都不知道存在这些功能,所以很多电脑爱好者就开始研究精简软件的方法,就是保留大多数常用功能,去掉极少用的功能模块,这样可以极大地减少软件的大小。

比如windows xp,里面有些功能(比如ATM的模块,泰国语言等)对于大多数用户是多余的,于是nuhi开发了nlite程序,可以把windows xp精简到200M左右,某些爱好者甚至可以精简到更小。还有xplite,可以精简安装好的xp系统。又比如我们常用的office软件,同样很多功能都是我们平时用不到,比如office 2003中的DOT NET可编程性支持,一般的用户可能仅仅需要word程序,如果我们去掉office软件中不太常用的组件,就可以office system精简到100M甚至几十M,这样可以把一些常用的软件做到一张光盘上,便于携带。此外,现在很多软件都捆绑了诸如3721,cnnic等插件(比如紫光3.0输入法捆绑了百度的搜索助手),很多用户都在不自愿的情况下被强制安装了这些插件,如果可以把这些插件从捆绑的软件中精简掉,就不会有不小心安装的情况了。

一般来说功能模块划分比较清晰的软件,容易精简也可能精简,如果软件的文件相关性很强,互相依赖,那么就无法精简。

绿色软件的概念

安装完操作系统后,我们一般需要安装一些常用的软件,但是随着我们常用软件的增多,这个安装过程显得越来越令人厌烦:运行setup,然后是选择目标路径,不断的重复这个过程。即使我们的硬盘上已经安装了这个软件,也要重新安装一次,才能正常使用。那么对于硬盘上已经存在的软件,能不能不安装而直接运行,仍然可以工作正常呢?

实践证明,按照是否需要重新安装来分类,可以分为3类:
1 有一部分软件具有不需安装而可以直接运行的特点。
2 还有一部分软件经过改造,可以通过简单的配置而不再需要重新安装就可以正常运行了。
3 有些软件必须重新安装才可以正常运行。

一般来说把前2种类型的不需要安装就可以运行的软件称为绿色软件,绿色软件具有如下优点,对操作系统无污染(恐怕这也是绿色这个名字的由来),不需要安装,方便卸载,便于携带,可以拷贝到便携的U盘上到处运行。一句话概括就是方便无污染。

制作软件的绿化版本就是手工安装,如果软件的配置过程很简单甚至根本不需要配置,这个软件就比较容易绿化。如果软件的安装过程比较复杂,甚至要替换操作系统的核心文件,这时候就不适合做绿化,比如directx。
             
精简软件与绿色软件的关系

我们常常听到“精简绿色版”这个名词,那么精简软件和绿色软件有什么关系呢?
一般说来,精简软件与绿色软件有着以下几种关系:
1、仅仅可以精简。有些软件太复杂或者需要替换操作系统模块,不适合绿化。比如office系统很难绿化,但是由于office安装程序的模块化比较好,很容易找出不需要的组件,所以容易精简。
2、仅仅绿化,有些软件功能很单一,没有多余的功能模块,这时候没有什么可以精简的,只能绿化。
3、绿化并且精简,很多时候,绿化软件的同时对软件进行精简,比如上一期的绿化msn messanger,为了便于安装和携带,就是对msn messanger同时绿化和精简。一般来说,绿化的同时伴随着精简,去掉不需要的文件和功能。
4、既不能绿化又不能精简,比如directx安装程序。

明白安装程序

无论是精简还是绿化都要和安装程序打交道,弄明白了安装程序所作的工作,会极大地方便绿化和精简。
目前安装程序有4大类型:
1、微软的Installer制作的安装包,后缀一般是msi,msp,是基于数据库的概念来设计的,具有自修复,按需安装,和windows集成等优点,并且微软在极力推广,已经成为安装程序的标准。目前很多安装制作程序都可以生成msi格式的安装包,老牌的InstallShield 和 Wise 也推出了基于msi的安装制作程序。微软提供的的windows xp 的sdk中包含了免费的msi编辑修改等工具。
2、Iinstallshield制作的基于InstallShield自身安装引擎的安装包,在windows installer以前,多数安装程序都是Installshield制作的。使用winpack v3.0可以解码InstallShield3,5,6引擎的安装包(下载地址:http://family.chinaok.com/down/200516/winpack.rar)。
3、Wise制作的基于Wise自身安装引擎的安装包,比installshield小巧,用的也比较广泛。使用E_WISE(下载地址:http://family.chinaok.com/down/200516/e_wise.zip)或者使用Wise Unpacker GUI(下载地址:http://family.chinaok.com/down/200516/wun.rar)可以解码wise软件包。
4、inno ,NSIS(Nullsoft),Installer VISE等制作的安装包,也是各有特色。total comander 有一个插件,叫WCXfar_IETotal,可以直接解压缩如下类型的安装程序:- Wise - Vise - Inno Setup - Gentee Installer - InstallShield - NullSoft Installer (ver>=1.10) - SetupFactory - Eschalon - MSI Windows Installer,不过还不是很完善,速度也比较慢。

软件的精简过程

软件的精简就是去掉不需要的功能模块,删除相对应的文件,这里面关键是找出软件中各不同模块所对应的文件,一般有几种方法:
1、分析文件名字和目录,进行推测和实验,删掉或者把某些文件移动到别的目录,看看软件功能是否受影响,这可以知道各个功能模块所对应的文件了。这个方法适合比较小巧的软件或者功能划分比较明显的软件(比如adobe acrobat软件,划分为Acrobat,Acrobat Elements,ActiveX,Designer 7.0,Distillr等几个目录,可以猜测各个目录所对应的功能模块)。当文件和目录比较多并且没有明确的名字指明模块划分的时候,这种方法就很繁琐和困难了。
2、直接分析安装软件包,比如msi格式的安装包,天生就是按照模块来划分的,使用msi编辑工具,可以很容易的了解各个模块所对应的文件,所以虽然office 比较复杂,难以绿化,但是容易精简。这种方法需要比较完善的安装程序包的分析工具。除了msi之外的大多数安装包的相关分析工具都不太完善。
3、快照测试。安装的时候,不要选择某项功能模块安装,记录下这时候的系统快照,然后安装该功能模块,再一次记录系统快照,对比快照前后的变化,来了解模块和文件对应关系。

软件的“绿化”过程

绿色软件的制作,简称软件的“绿化”,绿色软件的制作实际上就是我们自己完成安装程序的工作。没有什么固定的方法,基本上是猜测加上试验,不同类别的绿色软件分别有不同的制作策略。
笔者一般遵循如下步骤制作一个绿色软件:
1、判断:猜测这个软件能不能制成绿色软件,从功能,从你对它的了解,如果你觉得这个软件和系统的关系非常紧密,就不要继续下去了,还是用原始的安装程序最保险最方便,这样的例子有directx9 ,IE6,Norton的反病毒软件等等。这样的判断可以节省你的时间,当然你可以忽略这一步,尝试制作绿色软件,那么就转到第2步。
2、“绿化”:对于不同的软件有不同的方法,没有一定的规则,但是总的来说,就是理解软件的安装过程,转换为绿色安装,在这个过程中,可能需要尝试多个方法,也可能最后由于软件的复杂性或者某些特性,导致无法绿化。要有失败的思想准备,具体的绿化方法随后讲述。
3、测试:“绿化”后的测试最好到一个全新安装的操作系统中测试,如果你要在多个操作系统中使用这个软件,还要在其它的操作系统中测试,有些软件的文件随着操作系统的不同而不同,这个时候你需要在不同的操作系统中进行”绿化“过程,最后综合为一个完整的适应多操作平台的绿色软件。
“绿化”方法,需要根据经验选择不同的“绿化”方法,也可能需要不断尝试不同的方法,直到成功为止。按照先易后难的次序,具体的方法包括:
1、解压缩。
2、安装然后卸载。
3、反编译安装程序。
4、观察反安装程序和log文件。卸载是安装的逆过程,如果知道怎么卸载,那么也可以推测出如何安装。
5、比较系统快照。就是首先在安装软件之前,把系统的状态记录下来,主要包括注册表和系统目录的所有的文件状态。然后就是安装软件。安装完成后,再一次记录系统状态。最后就是比较前后两个系统状态的不同,而得知安装程序所做的工作。 通过上面分析安装程序的动作,把安装程序的工作分解为复制文件,注册COM组件,安装服务驱动,注册表配置等几个部分,把这些明显分割出来有助于制作绿色安装的软件。对于需要更复杂的步骤来安装的软件,还是使用原来的安装程序比较保险。

从上面的叙述可以看出,绿化和精简既紧密联系又相互区别,在下一篇将讲3个例子来具体讲述绿化和精简的概念。
《=◆天賦異能 誰與爭鋒 妳的電腦 我的權限◆=》
级别: 光盘新手
发帖
287
飞翔币
135
威望
13
飞扬币
4350
信誉值
0
只看该作者 12 发表于: 2008-03-06
双系统互救安装法


绿化软件就必须要做软件绿化试验,做绿化试验就要有干净的系统,但现实中不可能只安装干净的操作系统吧,下面介绍一种适合绿软爱好者用的系统安装法,它可以在几个系统之间跳来跳去:

----------------------------------------------------------------------------------------

1、先把硬盘分成4个分区,全部采用FAT32格式,以40G分4个区为例:

C:5G(安装WIN2000/XP系统和WIN2000/XP必装软件,重要资料不能放在这里,你要有个思想准备这个分区可以随时格式化)

D:5G(安装WIN98系统和WIN98必装软件,注意定期备份“我的文档”目录;)

E:15G(重点保护对象,安装常用的软件、网站资料、办公软件和其它WIN2000/XP/WIN98公用软件等,重要资料尽量放到这里)

F:15G(用于备份和下载)

2、格式化 C/D/E/F 四个分区成为FAT32格式;

3、用启动盘进入DOS,安装一个干净的WIN98系统到D:\windows,这个系统除了硬件驱动程序外,不安装任何软件,这个系统主要是用于在 WINDOWS 98 下作绿色软件实验用的;

4、在DOS下,用XCOPY/S命令,将D区的d:\windows和d:\program files两个目录复制到F分区。

5、重新启动,进入到WINDOWS98图形界面系统中,把常用的软件全部安装好,注意,软件尽量安装到 E 区,不要装在d:\program files目录;

6、在WINDOWS98系统中,安装 WINDOWS 2000/XP 到 C 分区,注意,不要选择 WINDOWS 升级安装的哪个选项,因为这样它会把你的WINDOWS98覆盖掉,要选“安装一个新的WINDOWS2000”的哪个选项,并把安装路径设置到 C 分区;

7、安装干净的 WINDOWS 20000/XP 系统,最简安装,除 WINZIP 外,其他软件不要安装,这个系统是用来在 WINDOWS 2000/XP 下作绿色软件试验用的。

8、重启系统,进入到 WINDOWS 98 系统,在 F 区建立一个“SYS_BAK”目录,并在里面建立四个子目录:

WIN98_1
WIN98_2
WIN2K_1
WIN2K_2

用 WINZIP 把 C 区里的 “Documents and Settings”、“Program Files”、“WINNT”三个目录分别压缩为:“Documents and Settings.zip”、“Program Files_2k.zip”、“WINNT.zip”备份到“WIN2K_1”里。

9、安装好 WINDOWS 20000/XP 系统的常用软件(WINZIP必装),注意:软件尽量安装到 E 区;

10、备份 C 区:先准备好 GHOST 的 DOS 程序,并复制到F区,在DOS下,运行GHOST,选择分区=>镜像备份功能,将 C 区镜像到 F,如F:\SYS_BAK\DISK_C.GHO;

11、重新启动系统后进入到WINDOWS 2000/XP,将D:中的 WINDOWS 和 PROGRAM FILES 两个目录分别压缩为ZIP文件,并改名为WIN98_2.ZIP和PROG_2.ZIP,并移到“F:\SYS_BAK\WIN98_2”目录里;同样,把 F 区的干净WIN98系统压缩为 WIN98_1.ZIP和PROG_1.ZIP,并移到“F:\SYS_BAK\WIN98_1”目录里;

12、整理:随便进入 WIN98 或 WIN2000/XP 系统,在 F 区新建一个如 SYS_BAK 的目录,将WIN98_1.ZIP、PROG_1.ZIP、WIN98_1.ZIP、PROG_1.ZIP、DISK_C.GHO、GHOST 等都移到里面;

备份完成。

----------------------------------------------------------------------------------------

系统维护方法:

(1)当系统严重混乱到两个系统都不能正常启动时,就拿出最厉害的武器:GHOST IT。
在DOS中进入F:\SYS.BAK中运行GHOST,将DISK_C.GHO恢复到C区,当然,这样你的C区又回到了原始的安装状态,这就是重要资料不放这里的原因。

(2)当WINDOWS2000只是出现一般性问题时,就 Ghost Explorer IT。
你可以进入WIN98系统,用Ghost Explorer(这个是WINDOWS程序,上面说漏了,也拷贝到F:\SYS.BAK吧)只恢复C:\WINNT目录或其中的部分文件,这样,C基本还保持目前状态;

(3)当WINDOWS98有问题时,就 ZIP IT。
进入WINDOWS2000系统中,把D:\WINDOWS 目录和D:\PROGRAM FILES删除(杀掉它),再用WINZIP把F:\SYS.BAK中的WIN98_1.ZIP、PROG_1.ZIP恢复成D:\WINDOWS 目录和D:\PROGRAM FILES;

(4)当你要做软件实验时,或想制作软件绿色备份版时,也ZIP IT。
进入WINDOWS2000中,把D:\WINDOWS 和D:\PROGRAM FILES目录改名为D:\WIN98_1 和D:\PROG_1,用WINZIP把F:\SYS.BAK中的WIN98_1.ZIP、PROG_1.ZIP恢复成D:\WINDOWS 目录和D:\PROGRAM FILES;则一个最原始的纯净WIN98又活灵活现了;通过目录的改名,你可以在纯净WIN98和一般WIN98之间跳来跳去(当然,这不是最方便的办法,但却是最容易实现的方法)

我从NT时代到现在的WINDOWS2000时代,用这个办法维护系统从未出过事。
《=◆天賦異能 誰與爭鋒 妳的電腦 我的權限◆=》
级别: 光盘新手
发帖
287
飞翔币
135
威望
13
飞扬币
4350
信誉值
0
只看该作者 11 发表于: 2008-03-06
扩展使用.INF文件-制作免安装的绿色软件

讲到把注册表文件和提取出的软件打包在一起做成绿色软件。但是.REG文件中的

路径都是静态的,一旦写好,就不会随着系统的变化而变化,而在.INF文件中,

可以使用变量操纵路径,从而可以跟踪安装程序所需要的路径的变化。下面首先

以一个完整的例子来演示如何用.INF文件制作绿色软件,然后具体讲解.INF文件

的各种用途。

EmEditor的绿化

下载EmEditor的安装文件emed404epx.exe后,发现用WinRAR可以打开,解压后,

运行EmEditor,发现丢失了预定义的多种文本格式的语法配置,看来这样做不行

,只好采用系统快照的方法了。请随我一步步进行,步骤如下:

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";还有就是和EmEditor和txt文件后缀向关联的注册表设置,把

EmEditor设置为IE中缺省的源代码察看工具的注册表设置以及注册COM组件

EMEDSHL.DLL的注册表部分(和InProcServer32相关的就是)。

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
绿色软件的制作,其中核心的一点就是获得原来软件的安装程序所做出的注册表

的改变,然后把该变化导出为一个注册表文件.REG来进一步分析。如果导出

的.REG文件不包括绝对路径,那么可以把该注册表文件和提取出的软件打包在一

起做成绿色软件。如果导出的.REG文件中包含当前软件的绝对安装路径,那么就

必须每次都要手工修改注册表中路径,是很麻烦的,降低了做成绿色软件的意义

所在。而使用.INF文件,使用AddReg命令可以轻松容易的解决这个注册表路径的

难题。
把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\Perl","Tmpl",,"%01%

\template.pl"
hkcu,"Software\EmSoft\EmEditor v3\Config\PHP","Tmpl",,"%01%

\template.php"
hkcu,"Software\EmSoft\EmEditor v3\Config\Python","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"

6.4 写一个批处理文件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的目录运行批处理文件),不

需要任何文件拷贝。

.INF文件是什么

.INF是 Device Information File 的缩写,是微软公司为供硬件设备制造商发

布其设备驱动程序而发展的———许多硬件设备的驱动程序都是使用 .INF文件

来安装的。.INF文件从 Windows3.X 时代就开始大量被使用了。  
.INF文件是一种具有特定格式的纯文本文件,我们可说它是一种安装脚本

(SetupScript)。虽然 .INF 只是纯文本文件,但是当我们在文件管理器

explorer对 .INF文件按鼠标右键後,如图inf右键.PNG,在右键菜单上就会出现

“安装I”命令,这是因为微软公司已在其操作系统 Windows 中内置提供了

Setup API(可以解释.INF脚本文件),我们只需用文本编辑软件编写 .INF文件

,便可完成大部份的安装工作,所以尤其是在软体的大小并不是很大的情况下,

安装工作不是很复杂的时候,使用 .INF文件来进行安装工作将会是一个好选择

。而且如果要安装设备驱动程序,.INF文件是目前唯一的选择。 可以用 .INF文

件创建包括注册表条目和目的目录的自定义软件安装指令。.INF文件可以提供有

限的平台独立性,并指定有限的软件依赖性。目前.INF文件最普遍的应用是为安

装硬件设备的驱动程序服务的,本文的目的就是介绍 .INF文件的功能、结构、

并提供了几个 事例来说明如何用.INF文件,如何扩展.INF文件的用途,比如制

作绿色软件,仅供参考。

下面首先给出一个驱动程序的.INF文件的例子,如图usbinfpng.png,是我从

Windows2000中抽取出来的用于Win98se的USB存储设备驱动的usbstor.INF文件,

删除了大部分内容,紧紧保留了一个基本的.INF文件的框架。

.INF文件的格式

在图usbinfpng.png中,可以看到.INF文件是由许多节(Section)组成,与.INI

文件类似,整个.INF文件由几个节组成,节名用方括号扩起来,如version 节,

Manufacturer节,和Strings节等等。而每个节又由一系列的条目组成,每个条

目都是是由一个键(Key)与一个值(Value)组成,都是“Key=Value”这样的

形式,在这些节中定义的项目可以完成硬件的自动检测和软件(包括驱动程序)

的安装。.INF文件中分号后面的字符串是注释。在一个 .INF文件中,所有跟随

在分号(;)后的文字都会被视为注释。注释并不一定要在新行开始,可以在一

行文字後面加入注释。

.INF文件案格式和作用如下所示:

[Version] 节: 包含对此 .INF文件的简短描述与此 .INF文件支持的设备类型

的信息。用于确认 .INF文件的基本版本信息。任何.INF文件都必须 包括这个节


在图usbinfpng.png中,[Version] 节中的语句 Signature="$CHICAGO$"表明这

个.INF文件可以用于windows 95以后的所有平台上,目前来说就是win98,winme

,winnt4,win2k,winxp,win2k3。这种.INF文件比较多见。如果[Version]节

中的签名条目是 Signature="$Windows 95$",表明这个.INF文件可以用于

windows 95以后的Win9x平台上,目前来说就是win98,winme。 如果[Version]

节中的签名条目是 Signature="$WINDOWS NT$",表明这个.INF文件可以用于

WindowsNT系列的平台上,包括winnt4,win2k,winxp,win2k3。WIN9x系列的操

作系统的SetupAPI将会拒绝执行这种类型的.INF文件。

[Manufacturer] 与 [Manufacturer Name] 节: 列出此 .INF文件可辨识的所有

硬件设备,并列出了开发该硬件的厂商名称,主要用于硬件设备的安装。在设备

驱动程序的.INF文件中必须包括[Manufacturer]节与 [Manufacturer Name] 节

。对应到图usbinfpng.png中就是[Manufacturer]节和[Microsoft]节,安装新硬

件的向导中列出来的厂商名字和设备名称就是来自这两个节。这行语句“%

MfgName%=Microsoft” 的等号右边的名字指明设备制造商是Microsoft,等号左

边是厂商的名字,图中的厂商名称是"Microsoft"(在后面讲到的[Strings]节中

)。在一个.INF文件中可以有多个设备制造商的名字,都必须放在

[Manufacturer]节中,同时[Manufacturer Name] 节可以列出该厂商的多种设备

。 [Manufacturer Name] 节区含有对要安装的设备的描述,并为要安装的设备

指出 [Install] 节区。 [Manufacturer Name]节语法:
[manufacturer-name]
device-description=install-section-name,device-id[,compatible-device-

id]...
device-description就是对要安装的设备的描述。install-section-name就是此

设备的 [Install] 节区名称,manufacturer-name 节区名称必须已在

[Manufacturer] 节区中被定义。device-id是此设备的硬件标志符,每个厂家的

不同的硬件对应着不同的设备标志符。
对应到图usbinfpng.png中,就是这行语句“%GenericBulkOnly.DeviceDesc%

=USBSTOR_BULK, USB\Class_08&SubClass_02&Prot_50”等号左边是设备的描述

,也就是设备名字是"USB Mass Storage Device",而等号右边的

USB\Class_08&SubClass_02&Prot_50是设备标志符,这个标志符是对应到一类的

硬件设备,就是USB存储设备,操作系统检测到USB存储设备,安装相应的驱动的

时候,就会从设备驱动的安装节即[USBSTOR_BULK]节开始安装驱动。可以看出来

此.INF文件可以用于通用的USB存储设备"USB Mass Storage Device"的驱动程序

的安装。
普通的安装软件的.INF文件中,不包括[Manufacturer] 与 [Manufacturer

Name] 节,即使包含,也不会执行它们,这2个节仅仅用于硬件的设备驱动中起

作用。

[Install] 节: 描述设备驱动程序与硬件设备的实际属性。它也定义了所有

[Install] 节的名称,在此定义的节中包含了安装该设备的信息和命令。默认情

况下,会执行 [DefaultInstall] 节,在图inf右键.PNG中,Install操作就会执

行[DefaultInstall] 节。[DefaultInstall] 节中包含指向其他节的指针,该节

可用于指定要复制和删除的文件、注册表的更新、.INF文件的更新等。
对应到图usbinfpng.png中,[Install] 节就是[USBSTOR_BULK]节,其中要执行

复制文件CopyFiles和添加注册表项目AddReg2种操作。
如果是安装普通的软件的.INF文件,可以通过鼠标右键菜单上的“安装”命令来

安装(图inf右键.PNG),这个时候.INF文件必须包括[DefaultInstall]节,也

可以包括其他的[Install]节,用RUNDLL32.EXE

SETUPAPI.DLL,InstallHinfSection [Install]节的名字,这样类似的命令来安

装。
[Install]节的语法:
[install-section-name]
Copyfiles=file-list-section[,file-list-section]...
LogConfig=log-config-section-name
Renfiles=file-list-section[,file-list-section]...
Delfiles=file-list-section[,file-list-section]...
UpdateInis=update-ini-section[,update-ini-section]...
UpdateIniFields=update-inifields-section[,update-inifields-section]...
AddReg=add-registry-section[,add-registry-section]...
DelReg=del-registry-section[,del-registry-section]...
Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
UpdateCfgSys=update-config-section
UpdateAutoBat=update-autoexec-section
[Install] 节定义了安装程式与硬体驱动需要的资源,以便安装新的驱动程式或

者软件。此节中每个条目都有其特定格式与意义,并非每个条目都是必要的。无

论是安装驱动程序还是普通的软件,最后都要从某一个[Install] 节开始执行。

[DestinationDirs] 节: 指定硬盘上复制、删除或重命名节文件的位置(例如

\Windows 或 Windows\System)。 .INF文件通过[DestinationDirs]节来指定操

作的目标路径,语法如下:
[DestinationDirs]
file-list-section =ldid[, subdir ]
DefaultDestDir=ldid[, subdir ]
[DestinationDirs] 节定义了 [file-list-section] 节中指定的操作(可以是

CopyFiles、RenFiles 或 DelFiles 节)的目标目录。DefaultDestDir命令可以

为 .INF文件中的任何没有明确在[DestinationDirs]节中命名的CopyFiles、

RenFiles或DelFiles节指定默认目标文件夹。
在.INF文件中,使用逻辑磁盘标识符 (LDID) 来表示路径,如下表:
00 Null LDID - 可用于创建新的 LDID
01 Source Drive:\pathname
10 Windows 文件夹(等价于%windir%目录 )
11 System 文件夹
12 IOSubsys 文件夹
13 Command 文件夹
17 Inf 文件夹
18 Help 文件夹
20 Fonts
21 Viewers
22 VMM32
23 Color 文件夹
24 包含 Windows 文件夹的驱动器根目录
28 Host Winboot
30 启动盘的根文件夹
31 虚拟启动盘的主驱动器根文件夹
如图usbinfpng.png中,这行语句“USBSTOR.CopyList = 10, system32\drivers

”表明USBSTOR.CopyList这个文件列表中文件的目标路径是%windir%\system32

\drivers,其中10代表Windows所在的文件夹,也就是说USBSTOR.CopyList这个

文件列表中文件USBSTOR.SYS在安装驱动的时候将会被复制到%windir%

\system32\drivers文件夹。而usbstor.inf这个文件将会被复制到17,也就是%

windir%\inf文件夹中。
[Strings] 节: 定义并列出上面所使用的可本地化字符串。如果某个特定的字

符串会在 .INF文件中频繁地出现,那么在此节中为它们定义一个字符串变量将

会是个好选择。如图usbinfpng.png中,语句MfgName="Microsoft",定义了

[Manufacturer]节使用的MfgName变量(就是字符串"Microsoft")。
[FileCopy/Delete/RenameSection(s)] 节:列出要复制、删除或重命名的文件

。 节的名字是CopyFiles,DelFiles,RenFiles。
[RegistryUpdateSection(s)] 节:指定在注册表中添加或删除的项目。 节的名

字是AddReg,DelReg。
[IniFileUpdateSection(s)] 节:指定 .ini 文件的更新。链接将在该节中创建

。 节的名字是 UpdateInis。

[ClassInstall] 节:为设备定义一个新的类别(Class)。主要用于硬件设备的

安装。

[SourceDisksNames] 节: 列出包含文件的磁盘。

[SourceDisksFiles] 节: 列出每个文件所在的特定磁盘。
其他的节还有许多,如:Update .ini Fields 节 (UpdateIniFields),Add Ini

File to Registry 节 (Ini2Reg),Update Config.sys 节 (UpdateCfgSys),

Update Autoexec.bat 节 (UpdateAutoBat),Optional Components 节,等等。

.INF文件是由Windows的SetupAPI解释执行的脚本文件,它的运行过程很简单,

是一种线性的执行,线性的意思就是.INF文件的运行过程不存在分支语句,也就

是没有条件语句,一旦开始执行,就是沿着固定的路线运行。它的运行是按照节

为单位来执行的,从某一个[Install]节开始执行,从上到下执行该节中的条目

,如果该条目是一个节,那么就一条条执行子节中的条目,如此递归执行。
这样的脚本看起来功能很弱,但是对于简单的安装任务已经足够了,安装不外乎

复制文件,添加注册表,修改.INI文件等任务,这些都可以用.INF文件来完成。

对于更复杂的安装要求,如要求安装程序的界面漂亮方便,要求有选择性的安装

,要求安装程序自动修复的功能,就只好求助于其他的工具了,如微软的

Windows Installer,就具备更加强大的功能。


.INF文件的版本

.INF文件的语法是统一的分节语法,随着操作系统的更新,微软逐渐增加了一些

必要的关键字,但是整个的.INF文件的结构不会变化。从语法上来说,.INF文件

都是一个类别。
按照.INF文件的版本来分类,可以分为2类:
1 AdvancedINF,在[Version]节中有“AdvancedINF=2.5,"您需要新版本的

AdvPack.dll" ”这么一行语句,表明此.INF文件需要AdvPack.dll这个动态链接

库来解释执行,AdvancedINF有一些高级特性,但是在目前用的不太多。
2 普通INF,没有指明需要AdvPack.dll的.INF文件,使用SetupAPI.DLL来解释执

行(win9x系列的操作系统使用Setupx.dll),系统中缺省使用的就是这种普通

INF。

.INF文件的功能

从前面的介绍,能够看出使用 .INF文件可以完成如下功能:
1 复制文件、删除文件、或重新命名文件。
2 新增或删除注册表(Registry)中的项目。
3 修改重要的系统设置文件(如 Autoexec.bat、Config.sys、.INI 等)。
粗看起来,似乎上面提到的第一个功能可以用批处理文件.BAT来完成,第二个功

能可以通过注册表文件.REG来完成,第三个功能现在用得不多,不经常处理.INI

文件了。这样说起来似乎.INF文件也没有太大的优势啊。这种看法是有问题的,

下面我将会着重指出.INF在在这几个方面的应用,而不会仔细讲解.INF的语法。

下面要提到.INF文件优于别的工具的方面。

用.INF文件编辑注册表

.INF文件可以编辑操纵注册表,相应的的命令是AddReg和DelReg,语法如下:
AddReg = add-registry-section[,add-registry-section]...
[ add-registry-section]
reg-root-string, [subkey], [value-name], [flag], [value]
[add-registry-section]节定义了将要添加的注册表子键或值名,可以有选择地

设置它的值。
DelReg = del-registry-section[,del-registry-section]...
[ del-registry-section]
reg-root-string, subkey, [value-name]
[ del-registry-section]节定义了将要从注册表中删除子键subkey或值名

value-name。
有时候上网遇到某些网站,修改了IE的主页,然后禁用了REGEDIT工具,这个时

候很多人只好借助于其他第三方工具如魔法兔子等来恢复注册表的编辑权限,其

实这个时候仅仅依靠.INF文件就可以恢复使用REGEDIT工具的权限。
把下面的这段代码复制到记事本里,另存为jiereg.inf,然后右击它选择“安装

(I)”,就可以了。
[Version]
  Signature="$CHICAGO$"
  [DefaultInstall]
  AddReg=My.Add.Reg
  [My.Add.Reg]
  

HKCU,"SOFTWARE\Microsoft\windows\currentversion\policies\system","disa

bleregistrytools", 0x00010001,"0"
HKLM,"SOFTWARE\Microsoft\windows\currentversion\policies\system","disa

bleregistrytools", 0x00010001,"0"
当然还可以用其他的方法,原理也是一样的,这里仅仅是演示一下.INF文件的用

途。
直接使用注册表文件,有时候还会遇到另外一个缺点,就是.REG文件里面使用16

进制代码表示UNICODE字符串的,如下面的两条注册表语句:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\

User Shell Folders]
"Cookies"=hex

(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,

45,00,25,00,5c,00,43,00,6f,00,6f,00,6b,00,69,00,65,00,73,00,00,00,00,0

0

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SoftEther]
"ImagePath"=hex

(2):22,00,44,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,

20,00,46,00,69,00,6c,00,65,00,73,00,5c,00,53,00,6f,00,66,00,74,00,45,0

0,74,00,68,00,65,00,72,00,5c,00,53,00,6f,00,66,00,74,00,45,00,74,00,68

,00,65,00,72,00,2e,00,65,00,78,00,65,00,22,00,20,00,73,00,65,00,72,00,

76,00,69,00,63,00,65,00,00,00,00,00

这上面两条语句难以阅读和修改,手工修改的话很麻烦,其中
"Cookies"的值实际上就是“%USERPROFILE%\Cookies”字符串的UNICODE表示。
"ImagePath"的值实际上就是"D:\Program Files\SoftEther\SoftEther.exe"

service
如果用.INF文件的形式的话,就很简单明白了:
[Version]
Signature="$CHICAGO$"
[DefaultInstall]
AddReg=Folders_AddReg
[Folders_AddReg]
HKCU,"Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell

Folders","Cookies",0x00020000,"%USERPROFILE%\Cookies"
HKLM,"SYSTEM\CurrentControlSet\Services\SoftEther","ImagePath",0x02000

0,"""D:\Program Files\SoftEther\SoftEther.exe"" service"
这个时候可以手工修改里面的路径信息,而.REG文件则很难做到这一点。

用.INF文件编辑.INI文件

.INF文件可以使用UpdateInis命令修改.INI文件的功能也经常需要,UpdateInis

的语法如下:
UpdateInis = update-ini-section[,update-ini-section]...
[ update-ini-section-name]
ini-file, ini-section, [old-ini-entry], [new-ini-entry], [flags]
[update-ini-section-name]节给出的 .INF 文件中替换、删除或添加的全部条

目。
ini-file 包含要更改条目的 .ini 文件名。 ini-section 包含要更改条目的节

名。 old-ini-entry 可选,常用形式为 Key=Value。new-ini-entry 可选,常

用形式为 Key=Value。flags 是可选操作标记。
使用逻辑磁盘标识符 (LDID),可以方便的修改.INI文件中的路径信息,当然其

他的条目也同样。举例如下: Total Commander ,是一套极佳的文件管理员,

内含各种压缩与解压缩,类似NC般非常好用的工具,对于文件与路径的寻找,除

一般的复制、删除、搬移、编辑等功能外,还有FTP功能(具有续传、背景传输)

与解决了中文乱码问题,"专题"再也不会变成"彩题"、新增文件分割、文件合并

、文件编码、文件解码(MIME,UUE,XXE)及新的操作介面(浮动工具列)。真是一

套相当强悍可完全取代文件总管的工具程序。
Total Commander依靠wincmd.ini来配置相应的操作特性和功能,于是可以使用

如下的.INF文件修改wincmd.ini中的路径信息:
[version]
Signature="$CHICAGO$"
[DefaultInstall]
AddReg=AddGhister
UpdateInis=UpdateInicmd
[AddGhister]
HKCU,"Software\Ghisler\Total

Commander","IniFileName",0,".\\wincmd.ini"
HKCU,"Software\Ghisler\Total

Commander","FtpIniName",0,".\\wcx_ftp.ini"
[UpdateInicmd]
%01%\wincmd.ini, Configuration,,"InstallDir=%01%"
%01%\wincmd.ini, Configuration,,"Mainmenu=%01%\LANGUAGE\TCExtMenu.mnu"
其中 [AddGhister]节负责修改注册表中记录的wincmd.ini的路径,而

[UpdateInicmd]节负责修改wincmd.ini文件红的相应路径信息,可以看出,一个

简单的.INF文件就完成了修改Total Commander的路径的任务,在Total

Commander5.x版本中,必须修改wincmd.ini文件中的路径信息,这个时候使

用.INF文件是非常方便的。


用.INF文件删除正在使用的文件

有时候由于某些文件正被操作系统使用而无法删除,如某些用于资源管理器的

OCX控件,可以使用.INF文件的DelFiles命令删除,该命令如果发现要删除的文

件被锁定,就会把文件放到系统删除队列中排队,等系统重启动的时候,该文件

就自动被删除了。
Delfiles的语法是:
Delfiles= file-list-section [,file-list-section]...
[file-list-section]
filename,,,1
[file-list-section]节定义了将要删除的文件列表,filename后面的1是一个标

志,指明如果文件当前无法删除,就等到系统重启动后删除。把下面的这段代码

复制到记事本里,另存为delinuse.inf,把这个文件拷贝到无法删除的文件的目

录,然后右击它选择“安装(I)”,就可以删除当前目录下正在使用的setup.exe

和setup2.exe。
[Version]
Signature="$Chicago$"

[DestinationDirs]
DefaultDestDir = 01 ; 当前目录 ,定义了将要删除的文件的路径
[DefaultInstall]
DelFiles = DELETELIST
[DELETELIST]
setup.exe ,,,1; 将要删除的文件
setup2.exe ,,,1; 将要删除的文件
同样可以使用Copyfiles命令替换系统正在访问的文件。这些功能通过普通的del

和copy命令都无法实现,如果不使用.INF文件,必须使用第三方的软件来完成。

辅助制作绿色软件

在注册表.REG文件中,不可以使用变量,这个缺陷对于需要设置路径的安装程序

来说,是非常致命的弱点,.REG文件中的路径都是静态的,一旦写好,就不会随

着系统的变化而变化,如果需要把安装的程序从C盘改变到D盘,而在.REG文件中

记录了安装路径的话,这个时候直接倒入注册表文件.REG是不行的,导入的注册

表仍然是原来写入的路径。而在.INF文件中,可以使用变量来操纵路径,从而可

以跟踪安装程序所需要的路径的变化。
对于绿色软件的制作,可以看我写的另外的专门的文章——绿色软件的制作,其

中核心的一点就是获得原来软件的安装程序所做出的注册表的改变,然后把该变

化导出为一个注册表文件.REG来进一步分析。如果导出的.REG文件不包括绝对路

径,那么可以把该注册表文件和提取出的软件打包在一起做成绿色软件。如果导

出的.REG文件中包含当前软件的绝对安装路径,那么就必须每次都要手工修改注

册表中路径,是很麻烦的,降低了做成绿色软件的意义所在。而使用.INF文件,

使用AddReg命令可以轻松容易的解决这个注册表路径的难题。

对于绿色软件的安装制作来说,最重要的就是01,也就是源文件夹。下面举一个

例子:
Registry Crawler V4.5 ,是强大的用户和开发者快速定位并配置注册表的工具

软件。一个强大的搜索引擎允许你基于搜索标准查找注册信息。(可以从天空软

件站下载http://www4.skycn.com/soft/2963.html),安装完成后导出的注册表

包含着如下一条语句:
[HKEY_LOCAL_MACHINE\SOFTWARE\4Developers\RCrawler\AppPath]
@="F:\\tools\\Reg\\RCrawler"
其中“F:\tools\Reg\RCrawler”是安装路径。
而改写为.INF文件就是:
[version]
Signature="$CHICAGO$"
[DefaultInstall]
AddReg=Add
[Add]
HKLM,"SOFTWARE\4Developers\RCrawler\AppPath","",0,"%01%"
注意里面的%01%就代表当前的安装路径。

当我们把F:\tools\Reg\RCrawler这个目录下的文件移动到其他目录时候,要

用.REG文件的方式的话,就必须手工修改注册表文件,而使用前面的.INF文件的

时候,什么都无需修改,只要在文件管理器explorer里面,用鼠标右键执行“安

装”命令的时候,%01%就自动被替换为当前所在的目录了。

最后,总结一句,注册表文件.REG非常方便和直观,但是对于处理路径的变化的

情况,非常笨拙和不方便,而.INF不如注册表文件直观,但是可以方便的处理路

径信息(包括UNICODE的路径信息),所以应该把.REG文件和.INF文件结合使用

,互相弥补各自的缺点。

.INF文件的生成方法
可以直接手工用一个纯文本的编辑器书写.INF文件,当相对应的.REG文件非常庞

大,条目比较多时候,可以用小工具reg2inf.exe来自动的把.REG文件转换

为.INF文件,然后再进行相应的路径修改,把绝对路径替换为用逻辑磁盘标识符

(LDID) 来表示的路径。
如果涉及到文件操作的时候,只好手工写了,目前还没有自动化的工具。


inf 文件的好处是 不像vbs那么强大,甚至有可能由危险的格式化代码
inf的限制很强,这样比其他的脚本文件安全,当然相对的功能就弱,但是也足够

《=◆天賦異能 誰與爭鋒 妳的電腦 我的權限◆=》
级别: 光盘新手
发帖
287
飞翔币
135
威望
13
飞扬币
4350
信誉值
0
只看该作者 10 发表于: 2008-03-06
自制绿色软件-打造最傻瓜的软件安装包

用Windows优化大师制作绿色软件

对于一些已经安装好的软件,如果想制作成绿色软件安装包,就需要借助Windows优化大师的智能卸载功能。

①运行优化大师,点击窗口左侧的“系统清理维护→软件智能卸载”,点击界面的“分析”,完成分析后找到“说明”为“注册表信息”的项目。

②打开“注册表编辑器”,找到优化大师中“注册表信息”下的对应项,选择菜单中的“注册表→导出注册表文件”,进行几次操作后,导出所有的注册表键值,将它整合为一个zhuce.reg文件。点击“卸载”按钮,将软件卸载。

③ 进入优化大师安装文件夹下的Backup/UninstallFiles文件夹,找到以卸载文件的名称命名的子目录,将该目录下的所有文件复制到另一个文件夹下,并把刚才制作的两个注册表文件也保存到此文件夹下。

④右击该文件,选择“添加到压缩文件”。

⑤勾选“常规”标签下的“创建自解压格式文件”,并修改“压缩文件名”为“flashgetinst.exe”。

⑥点击“高级”标签下的“自解压选项”按钮。

⑦然后在“解压路径”填入“flashget(以flashget为例)/”,再勾选“在‘ProgramFiles’中创建”。

⑧在“安装程序”下的“解压后运行”中输入“Regedit/S %systemdrive%/PROGRA~1/FlashGet/zhuce.reg”

⑨点击“高级”标签下的“添加快捷方式”,然后在“在哪里创建”中选择“开始菜单/程序”,在“源文件名”中输入“flashget.exe”,在“目标文件夹”中输入“flashget/”,“快捷方式”中输入“FlashGet”,点击“确定”。

⑩点击“模式”标签,选择“全部隐藏”及“覆盖所有文件”,最后点击两次“确定”完成制作。
《=◆天賦異能 誰與爭鋒 妳的電腦 我的權限◆=》
级别: 光盘新手
发帖
287
飞翔币
135
威望
13
飞扬币
4350
信誉值
0
只看该作者 9 发表于: 2008-03-06
绿色软件的定义和分类


安装完操作系统后,我们一般需要安装一些常用的软件,但是随着我们常用软件的增多,这个安装过程显得越来越令人厌烦:运行setup,然后是选择目标路径,不断的重复这个过程。后来我见到有人制作所谓的绿色软件,不需要安装,感觉很方便。当时很好奇,想知 道怎么做的,有没有什么方便的工具等等,可是在网上没有找到什么相关的知识,随着自己的一步步摸索,我逐渐积累了一些经验和比较有效的方法,在这里提供给大家。

首先要先弄清楚何谓绿色软件?其定义是什么?我收集了一些网友的讨论和想法:
A 说,不需要安装 同时 不向注册表写入任何东西
B 说,应该还包括不向系统文件夹拷贝文件,我的理解就是:安装这个软件对现有的操作系统没有任何改变,改变包括写注册表之类的。
C 说,除了你现在安装的目录,应该不往任何地方写东西(比如log)。
D 说,免安装,并且 不往程序所在目录以外的任何地方产生垃圾文件,还有 不写注册表
E 说,综上加一条,可以放在移动存储器上在任一电脑上使用且效果相同。
F 说,好像不写注册表,直接copy来就可以用得就算吧。
G 说,重新安装系统的时候,仅需导入注册表,不需重新安装,就可以认为是绿色软件。
H 说,其实只要不写注册表、不往系统文件夹写文件,哪怕需要.ini文件也在软件自己的目录里就行,那么就可算作绿色软件,特征是能够任意copy到别的文件夹照样能用或重装系统后直接能用,没有其它变化。所以有小部分“安装”的软件其实也符合绿色软件,因 为它 的安装只是解压缩建立文件夹而已。
I 说,基本同意,但不写注册表的几乎是不可能,你只要运行过那个软件,打开注册表编辑器HKLM和HKLU下面software看看,几乎都会留下键值,其实这样也应该叫做绿色的吧。


综合上面的意见,可以总结出绿色软件的优点,就是对操作系统无污染(恐怕这也是绿色这个名字的由来),不需要安装,方便卸载,便于携带,可以拷贝到便携的U盘上到处运行。

我的意见是,绿色软件应该分类,分为狭义的绿色和广义的绿色:
狭义的绿色可以叫做纯绿色软件,就是指这个软件对现有的操作系统部分没有任何改变,除了软件现在安装的目录,应该不往任何地方写东西,删除的时候,直接删除所在的目录就可以了,就类似于以前的大多数DOS程序。
广义的绿色就是指不需要专门的安装程序,对系统的改变比较少,手工也可以方便的完成这些改变,比如拷贝几个动态库,或者导入注册表,这里的关键是手工可以方便的完成这些改变,或者可以借助于批处理等等脚本完成。
为什么要分为两类?虽然狭义的绿色软件最为理想,但是完全符合这种定义的软件非常罕见,而相当多的软件可以划分到广义的绿色这个类别,这样包括了广义的绿色软件的概念后使得绿色软件这个概念更有意义。
那么不符合绿色软件要求的有哪些呢?主要是指那些和操作系统联系和集成非常紧密的软件,这些软件不适合制成绿色软件,最好还是用原来的安装程序来安装。如IE6,替换了系统中的许多动态库,手工完成这个过程很困难,也不太安全。又比如大多数杀毒软件,如果 必须实时监控系统的底层运作,对系统的修改比较大,就不适合做成绿色软件。还有微软公司的Office系列软件,和系统集成的也比较紧密。但是广义的这个标准比较灵活,如果有人搞清楚了Office系列软件的安装制作过程,也有可能制作出广义的绿色的Of fice系列。

为了充分理解绿色软件的定义,必须从现代软件的安装过程和运行过程两个方面来讨论。
安装过程:以前在dos下面的时候,就没有这些所谓绿色软件的说法,原来程序的安装基本上都是简单的复制或者解压缩,然后配置一下config.sys 和autoexec.bat文件就可以了。随着windows的发展,应用软件也越来越大,也越来越复杂,从而有公司专门从事安装程序的制作,如InstallShield就是一款比较有名和应用比较广泛的安装软件,现在windwos也有了专门的安装程 序,就是Microsoft Installer。安装程序的作用是什么呢?主要是为了给要安装的程序提供一个简单方便的设置环境,而不需要用户手工完成这个步骤,越是复杂的配置过程,对系统的修改越多,对安装程序的依赖性就越高,Windows程序的易学易用的优点和良好的安装界面 是分不开的,安装软件的任务就是给应用程序提供一个初步完好的可以运行的环境,而不需要用户进行手工配置。
运行过程:应用程序启动的时候,从注册表或者配置文件中读取配置,运行的时候,可以修改配置,但这个修改一般是在安装软件所作工作的基础上进行的,例如不能改变应用程序的安装位置了。
明白安装过程和运行过程的区别后,很容易就想到把绿色软件的使用按照这两个阶段分为绿色安装过程和绿色运行过程。绿色安装是绿色运行的前提,没有绿色安装,也就说不上什么绿色运行了,绿色软件首先必须是绿色安装,我前面提到的不适合绿色软件标准的基本上都 是不能绿色安装的。

绿色安装的基本含义,我认为可以也可以分为狭义的和广义的绿色安装:

1 狭义的绿色安装就是指直接拷贝或者解压缩到目标目录,不需要向系统目录拷贝也不需要写入注册表,这是最理想的情况,或者是安装程序的作用除了解压缩外是可以忽略的,如在开始菜单加入快捷键等对系统和软件的运行没有太大影响的操作,也就是说安装过程的作用就 是复制文件到目标文件夹。

2 广义的绿色安装就是指在狭义的复制的基础上,必须向系统目录拷贝一些动态库,或者要在注册表中导入必要的设置,或者要进行一些其他的配置,否则的话,应用程序不能运行,而且这个配置工作应该比较简单,也容易撤销这些操作对系统的改变。

同样,绿色运行也可以分为狭义的和广义的绿色运行:

1 狭义的绿色运行指的是软件运行时完全不改变操作系统的文件和配置--很多小程序属于这个类别,或者运行结束后把撤销对系统的改变,比如运行的时候加载一个驱动程序,退出时卸载该驱动程序,所操作的INI文件在自己的程序目录中。

2 广义的绿色运行指的是可以通过程序本身来改变当前的设置,如改变当前软件的运行方式,或者与某些文件后缀相关联,或者在注册表中留下当前的软件设置,也就是说对系统的注册表有永久的改变,但是这些改变都是应用程序自己完成的,不需要借助其他程序或者用手工 完成。

综合绿色安装和绿色运行,可以把绿色软件细分为:

1 狭义的绿色安装,同时是狭义的绿色运行的软件,对操作系统没有任何改变。

2 狭义的绿色安装,广义的绿色运行的软件,软件的配置工作由软件本身来完成,不是通过安装程序。

3 广义的绿色安装,狭义的绿色运行,软件的配置工作由安装程序来完成,软件本身不能对配置修改,同时如果没有配置工作,软件无法正常运行。

4 广义的绿色安装,广义的绿色运行,最复杂的一种绿色软件,软件的配置工作由安装程序来完成,但是软件本身可以对配置 修改,同时如果没有配置工作,软件无法正常运行。

只有第一个类别属于我说的狭义的绿色软件,其他3类都属于广义的绿色软件的范畴。
《=◆天賦異能 誰與爭鋒 妳的電腦 我的權限◆=》
级别: 光盘新手
发帖
287
飞翔币
135
威望
13
飞扬币
4350
信誉值
0
只看该作者 8 发表于: 2008-03-06
通杀各种exe安装程序

现在是不是装软件很烦人啊,弄不好一路next下去还会装上以3721为核心的流氓软件集团~~HOHO,所以嘛,软件,就是要绿色的爽!但是现在的程序员越来越不厚道了,一个几K的工具都要先msi再rar最后zip~~~怎样剥离安装文件 setup.exe中的资源是长久以来没能解决的问题。虽然有n多命令行的工具可以用来unpack,但有多少人愿意在每次安装软件的过程中输入那么一大串命令呢?所以 老外 做了个整合的GUI程序,可以用来unpack n多的exe安装包格式,这就是今天要向大家隆重推荐的,小巧方便的,杀人灭口居家旅行的必备工具:Universal Extractor ,目前支持的安装包格式有



7-zip 压缩包 .7z, .exe
ACE 压缩包 .ace
ARC 压缩包 .arc
ARJ 压缩包 .arj, .exe
BIN/CUE CD-ROM 镜像 .bin, .cue
bzip2 压缩包 .bz2, .tbz2, .tar.bz2
CPIO 压缩文件 .cpio
Debian 安装包 .deb
gzip 压缩包 .gz, .tgz, .tar.gz
IMG 软盘镜像 .img
Inno Setup 安装包 .exe
InstallShield Cabinet 压缩包 .cab
InstallShield 安装包 .exe
ISO CD-ROM 镜像 .iso
LZH 压缩文件 .lzh, .lha
LZW 压缩文件 .Z, .tz, .tar.Z
LZO 压缩文件 .lzo
Microsoft Cabinet 压缩包 .cab, .exe
Microsoft帮助文件(Compiled Help file) .chm
Microsoft压缩文件 .??_
Windows帮助文件e .hlp
NSIS 安装包 .exe
RAR 压缩包 .rar, .001, .exe
RPM 安装包 .rpm
TAR 压缩包 .tar, .tbz2, .tgz, .tz, .tar.bz2, .tar.gz, .tar.z
Windows Installer安装包 .msi
Wise Installer 安装包 .exe
ZIP 压缩包 .zip, .jar, .xpi, .exe


支持的文件后缀:
.??_ Microsoft 压缩文件
.001 RAR 压缩包
.7z 7-zip 压缩包
.ace ACE 压缩包
.arc ARC 压缩包
.arj ARJ 压缩包
.bin BIN/CUE CD-ROM 镜像
.bz2 bzip2 压缩包
.cab InstallShield 压缩格式,Microsoft Cabinet 压缩包
.chm Microsoft Compiled Help file
.cpio CPIO 压缩文件
.cue BIN/CUE CD-ROM 镜像
.deb Debian 安装包
.exe ARJ自解压包,Inno Setup安装包, InstallShield安装包,CAB/RAR/ZIP自解压安装包,NSIS安装包
Wise Installer 安装包
.gz gzip 压缩包
.hlp Microsoft Windows Help file
.jar ZIP 压缩包
.img IMG 软盘镜像
.iso ISO CD-ROM 镜像
.lha LZH (Amiga) 压缩文件
.lzh LZH (Amiga) 压缩文件
.lzo LZO 压缩文件
.msi Windows Installer安装包
.rar RAR 压缩包
.rpm RPM 安装包
.tar TAR 压缩包
.tar.bz2 bzip2-compressed TAR 压缩包
.tar.gz gzip-compressed TAR 压缩包
.tar.Z LZW-compressed TAR 压缩包
.tbz2 bzip2-compressed TAR 压缩包
.tgz gzip-compressed TAR 压缩包
.tz LZW-compressed TAR 压缩包
.xpi ZIP 压缩包
.Z LZW 压缩文件
.zip ZIP 压缩包


嘿嘿,怎么样,多吧~~它的官方网站是:

http://www.legroom.net/modules.p ... &app=uniextract

要下载的话到这里(晕,自己叫UniExtract还 提供exe的安装包~)

http://www.c1pher.com/uniextract121.exe

当然啦,不想安装的绿色版在这里:

http://www.c1pher.com/uniextract121_noinst.rar

源代码在这里:(晕,居然是AutoIt做的,太强悍了,不是吗?)

http://www.c1pher.com/uniextract121_source.rar

软件的使用太简单了,把exe安装文件拖到 uniextract.exe图标上就OK了!

我一般是在 “开始”菜单建立一个UniExtract的快捷方式,定义一个快捷键Ctrl+Alt+X,使用的时候按一下Ctrl+Alt+X,然后把下载下来的程序拖到UniExtract界面上,点 OK ,整个过程不到3秒!

最后说说,UniExtract只不过是现有解包工具的一些组合和优化,有的时候它探测exe安装包的类型还得用PEiD~~~HOHO~~下面是它引用的第三方 Ultilities 列表(我以前都用这些命令行工具的~~~)



7-Zip (Igor Pavlov, Open Source) - Excellent general purpose Windows archive utility; used to extract .7z, 7-Zip SFX .exe, .bz2, .cab, .chm, .cpio, .deb, .gz, .iso, .lha, .lzh, NSIS installer .exe, .rpm, .tar, and .Z files
ARC (Howard Chu, Open Source) - ARC archiving utility; used to extract .arc files; Note: binary was obtained from http://gnuwin32.sourceforge.net/packages/arc.htm
AutoIt (Jonathan Bennett, Open Source) - General-purpose Windows scripting language; used to write the UniExtract front-end
bin2iso (Bob Doiron, Open Source) - Utility to convert BIN/CUE CD-ROM images to ISO images; used in conjunction with 7-Zip to extract .bin/.cue images
Crystal SVG (Everaldo Coelho, Free) - Collection of extremely high-quality icons for Linux/KDE; used as the source graphics for the UniExtract icon
E_WISE (Veit Kannegieser, Open Source) - Wise Installer decompiler; used for extracting files from Wise Installer packages
extract (Gilles Vollant, Freeware) - Floppy disk image extraction utility; used to extract files from .img images
GIMP (Spencer Kimball and Peter Mattis, Open Source) - The GNU Image Manipulation Program; used to create the icons used by UniExtract
HelpDeco (Manfred Winterhoff, Freeware) - Decompiler for Windows Help files; used to extract/reconstruct .hlp files
i6comp (Morlac, Open Source) - InstallShield 6.x Compression and Maintenance utility; used for extracting files from InstallShield 3.x - 6.x (I think) installer packages
Info-ZIP UnZip (Info-ZIP, Open Source) - Highly portable ZIP archive utility; used for extracting .zip and ZIP SFX .exe files
Inno Setup (Jordan Russell, Open Source) - Open Source packaging application for Windows; used to create the UniExtract installer
Innounp (QuickeneR, Open Source) - Inno Setup Unpacker; used for extracting files from Inno Setup installer packages
IsXunpack (Pit0n and SkYuS//vN, Freeware) - InstallShield Unpacker; used for extracting files from modern InstallShield installer packages
lzop (Markus F.X.J. Oberhumer, Open Source) - LZO file compression utility; used to extract .lzo files
Open-source ARJ (ARJ Software Russia, Open Source) - Open Source implementation of the ARJ archiving utility; used to extract .arj and ARJ SFX .exe files
PEiD (Jibz, Qwerton, snaker, and xineohP, Freeware) - Portable Executable File Identifier; used to analyze .exe file signature to determine the filetype and whether or not it's a supported archive
tee (Free Software Foundation, Open Source) - Shell utility that redirects standard input to multiple outputs; used to write messages to a log file while also displaying current progress; Windows binary was obtained from http://unxutils.sourceforge.net/
UnRAR (Alexander L. Roshal, Freeware) - Command-line utility for RAR archives; used to extract .rar and RAR SFX .exe files
WUN (J?germeister Markus, Icebird, Open Source) - Wise-Setup Unpacker; used for extracting files from Wise Installer packages (updated version of HWUN)
XAce (Marcel Lemke, Freeware) - ACE archive utility; used for extracting .ace and ACE SFX .exe files


其实平时最常用的就是 InnoUnpack和NSIS,用了3个月了,发现UniExtract还是不能解压SetupFactory制作的exe安装包~~遗憾啊~~不过大家可以看到,里面的Wise UNpacker是国人做的哦~~不过n久没有更新了~~大家以后就不要在运行什么安装程序了,直接解包就是了~~现在的软件不安装99%都能运行的~~

右键集成(当然也可以选择不集成哈)
《=◆天賦異能 誰與爭鋒 妳的電腦 我的權限◆=》
级别: 光盘新手
发帖
287
飞翔币
135
威望
13
飞扬币
4350
信誉值
0
只看该作者 7 发表于: 2008-03-06
绿色软件命名规则

(一)、按汉化程度分:

中文版:是指官方提供的简体中文语言支持;
汉化版:是指非官方提供的简体中文语言支持;
多语版:是指软件里面包含多种语言支持的版本,如果没有特别说明,则里面应
    最少包含简体中文支持;
英文版:没有中文支持的英文原版;

(二)、按精简程度分:

最简版:只保留保证主程序运行所必须的最少文件;
精简版:在保留软件的大部分功能的基础上,删除一部分不重要的文件;
完整版:保留软件的全部功能和文件;
增强版:在完整版的基础上,增加一些必要文件,使原版的功能得到加强和扩充;
便携版:把小型绿色软件制作成只有一个执行文件的版本。

(三)、按绿化程度分:

纯绿版:既不向系统添加备份文件,也不向注册表添加内容;
绿色版:不向系统添加备份文件,但向注册表添加内容;
绿化版:向系统添加少量必要的备份文件,添加或不添加注册表内容;
绿色软件站专用版:表示本软件是绿色软件站专为自己精心绿化整理的软件。


以上三类命名规则联合使用,组合成完整的命名,例如:“XXXXXXX 中文最简纯绿版”、“XXXXXXXX 绿色软件站专用版”等。
《=◆天賦異能 誰與爭鋒 妳的電腦 我的權限◆=》