无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 64350|回复: 144
打印 上一主题 下一主题

[正版发行]为制作精简系统的 INF 文件减肥工具

[复制链接]
跳转到指定楼层
1#
发表于 2006-9-15 23:47:10 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
____MS的Windows XP/2K后,INF文件基本是Unicode格式的文本文件,与同样内容的ANSI格式的文件比较,Unicode格式的文件往往是ANSI格式文件体积的两倍,且大多数Unicode格式的INF文件都可以用ANSI格式保存而不影响系统的使用,更要命的是这些INF文件中有大量的注释内容、空行和无用的空格,手工对其减肥是一项很繁重的工作,且容易出错,为此本人制作了一个INF 文件减肥工具,功能见图。

___这也算是正式版本了,已开放了绝大部分选项给用户选择。当然难免还存在BUG和不足,若发现问题不要骂人,多测试,多提建议才是正道。

___再说一次,有BUG就报告。

[ 本帖最后由 lxl1638 于 2006-9-18 06:44 PM 编辑 ]

Nlite4INF1.JPG (37.27 KB, 下载次数: 306)

Nlite4INF1.JPG

Nlite4INF.rar

161.21 KB, 下载次数: 1954, 下载积分: 无忧币 -2

Nlite4INF v1.0.1版

2#
 楼主| 发表于 2006-9-16 11:28:05 | 显示全部楼层
原帖由 老毛桃 于 2006-9-16 10:59 AM 发表
感谢老九,前几天想做一个批处理来实现的,看来现在不需要了,嘿嘿,有现成的!


____就算用WINHEX手工精简也是很繁重的任务,这个以后很多人要用到,希望你帮我详细测试,发现问题好改进。

这个工具只能删掉那些无用的 空行、注释内容和多余的空格,并将文件以ANSI格式保存,对于注册表中的垃圾键值无能为力。
回复

使用道具 举报

3#
 楼主| 发表于 2006-9-16 12:57:27 | 显示全部楼层
原帖由 c383 于 2006-9-16 12:00 PM 发表
"发个为制作精简系统的 INF 文件减肥工具"
是为精简系统的安装文件“i386“用的还是为精简已安装好的系统中的”windows文件夹"用的?


____出发点是安装源I386目录下的INF文件,对安装好的系统没有试过,原理上是可以的。
但一般安装好的在硬盘上的系统,往往含有外国(非英文的,如日本语等)字体的注册键值和条目,将这些INF文件转换成ANSI格式会丢失信息,如果这些条目不存在(如某些精简的系统,已砍掉了这些内容),一样可以用这种方法减肥。

___要判断INF文件能否以ANSI格式保存,可以用记事本打开查看,没有乱码的就可以。一般非英文的外国语言字体的INF注册表含有Unicode信息,用记事本另存为ANSI格式时会有提示。
回复

使用道具 举报

4#
 楼主| 发表于 2006-9-16 16:20:14 | 显示全部楼层
____正在改进,用户可以随时关闭或打开那些逐行显示处理内容,关闭逐行显示后速度明显加快了很多,晚上再上传给大家测试。

____目前是测试版,减肥选项的功能由程序的代码内定,用户无法自行改变。

____正准备增加一项功能 ---- 用String段的值替换变量,这样处理INF文件的过程较慢,但INF文件可再减小1/4至1/3,且系统启动过程快些,因为系统启动时再不用替换这些变量了。
回复

使用道具 举报

5#
 楼主| 发表于 2006-9-16 17:21:05 | 显示全部楼层
原帖由 secowu 于 2006-9-16 04:45 PM 发表
我想知道 的是,如果這個系統是用來做封裝的,那麼Ghost或是Acronis會對這些文件進行壓縮
問題來了:

將未減肥的與用此方法減肥了的同樣級別壓縮後,差別有多大呢?


____可以说差别不会很明显,这个工具是针对Windows的安装源I386\INF目录在文件的,也可以精简WinPE的I386\INF目录中的文件。
回复

使用道具 举报

6#
 楼主| 发表于 2006-9-16 17:22:57 | 显示全部楼层
原帖由 sck 于 2006-9-16 04:23 PM 发表
我试了,在批量处理时,有三个INF文件的最后一项是乱码(是几个乱码)

请你检查一下原来的那3个文件中有没有非中文又非英文的字符,或者你打包传上来给我看看。
回复

使用道具 举报

7#
 楼主| 发表于 2006-9-16 17:49:05 | 显示全部楼层
原帖由 老毛桃 于 2006-9-16 04:22 PM 发表

这个会不会出问题呀?


不会,我试过,或者你也知道这么一回事。以前无忧的朋友(隐者)做的Win2K3 PE,曾有这个现象:
“我的电脑”即explorer.exe中"文件类型"这项有很多是用变量表示的(他后来的版本已修正了),如文件夹用%FILE_FOLDER%表示,原因是由于Nlite有个小BUG,用Nlite精简系统时,它处理过的HIVECLS.INF文件有两个[String]段,第一个是它加上去的,只有一个变量,第二个[String]段是安装源原来的,但PE启动(系统安装)时不理会第二个[String]段,所以造成很多变量没有被[String]段的值代换。这个问题当时想问隐者,但发现他几乎不上无忧了,搞了我几天时间,最后才从I386\INF目录中找到这些变量的文件(HIVECLS.INF)。我当初的处理方法是用[String]段的值替换上面的变量,删掉[String]段,成功了。后来分析才发现两点:
1、不能存在2个[String]段;
2、INF所有变量都可以用[String]段所指定的值代替。

下面是这个HIVECLS.INF文件的片段

[Version]
Signature = "$Windows NT$"
ClassGUID={00000000-0000-0000-0000-000000000000}
DriverVer=10/01/2002,5.2.3790.1830
[AddReg]
;.......
;.......
;.......
HKCR,"DirectDrawClipper\CLSID","",0x00000002,"{593817A0-7DB3-11CF-A2DE-00AA00B93356}"
HKCR,"Directory","",0x00000002,"%FILE_FOLDER%"
HKCR,"Directory","AlwaysShowExt",0x00000002,""
;......
;......
;......
[Strings]
;......
;......
;......
EXECUTABLE_FILES="可执行文件"
FILE_FOLDER="文件夹"
FILE_SYSTEM_ATTRIBUTES="文件系统属性"
FOLDER="资料夹"
;......
;......
;......
回复

使用道具 举报

8#
 楼主| 发表于 2006-9-16 18:24:44 | 显示全部楼层
原帖由 sck 于 2006-9-16 06:01 PM 发表
奇怪,小批量处理时,原有乱码的变成没有乱码的了。

越界?你第一次(出现乱码的那一次)共处理多少个文件,按理不会出现这种情况,工具内定的变量可一次处理6W多个文件的,应够用了。
回复

使用道具 举报

9#
 楼主| 发表于 2006-9-16 19:42:52 | 显示全部楼层
原帖由 sck 于 2006-9-16 06:44 PM 发表
我是用它来处理红叶的光盘里的INF文件。共2.42M。如NETALI.INF就丰最后有乱码,如果只处理少数文件则没这现象。处理过的NETALI.INF文件内容:

Signature="$Windows NT$"
Class=Net
ClassGUID={4d3 ...


你把原本的这个文件打包(RAR)传上来,不要直接帖上来。
回复

使用道具 举报

10#
 楼主| 发表于 2006-9-16 21:27:38 | 显示全部楼层
按大家的要求作了修改,见1楼的附件[Beta1版]。
回复

使用道具 举报

11#
 楼主| 发表于 2006-9-17 09:31:28 | 显示全部楼层
都说了,测试版本。
另,你下的还是前天的版本。
回复

使用道具 举报

12#
 楼主| 发表于 2006-9-17 20:23:40 | 显示全部楼层
我也倒!都说过N次,是初测版,给大家测试有没有BUG的。
回复

使用道具 举报

13#
 楼主| 发表于 2006-9-17 20:32:20 | 显示全部楼层
正式版也问世了,开放了绝大部分选项给用户 选择。
回复

使用道具 举报

14#
 楼主| 发表于 2006-9-17 20:50:40 | 显示全部楼层
原帖由 老毛桃 于 2006-9-17 08:47 PM 发表
速度确实快了些,暂时也没发现什么 BUG,老九是不是打算将界面做点美化了,嘿嘿,至少上面那么多的选项应该分两行显示吧,窗口太长了

华而不实的东西本人不感兴趣,至重的是功能。
试过800*600的屏幕刚好,现在都是1024*768以上是主流了。
回复

使用道具 举报

15#
 楼主| 发表于 2006-9-18 12:43:36 | 显示全部楼层
原帖由 老毛桃 于 2006-9-18 09:10 AM 发表
建议添加两个比较使用的功能,就是精简时长的统计,让人知道到底使用了多少时间来精简,我现在作显示文本内容和不显示文本内容的精简时长对比,是使用秒表来手动计时,不甚方便,呵呵,就算不是使用的功能,老毛桃 ...


____这样如何?

Nlite4INF1.JPG (40 KB, 下载次数: 164)

Nlite4INF1.JPG
回复

使用道具 举报

16#
 楼主| 发表于 2006-9-18 12:49:56 | 显示全部楼层
原帖由 老毛桃 于 2006-9-18 12:45 PM 发表

哈哈,老九够强!收下了!谢谢!


别急,还没上传,晚上吧。
回复

使用道具 举报

17#
 楼主| 发表于 2006-9-18 18:46:28 | 显示全部楼层
按老毛桃的建议,增加了对减肥效果的统计
回复

使用道具 举报

18#
 楼主| 发表于 2006-9-18 19:11:31 | 显示全部楼层
那个统计结果是很少用到的,黙认是不统计,此时这个对话窗也不弹出,只在label提示任务完成,更安静。
当用户选择统计时才弹出这个窗口,就目前的布局,要增加显示3行文字的label,窗口的控件布局有点乱,也想不到合理的布局。

[ 本帖最后由 lxl1638 于 2006-9-18 07:17 PM 编辑 ]
回复

使用道具 举报

19#
 楼主| 发表于 2006-9-19 11:44:23 | 显示全部楼层
原帖由 jtyuer 于 2006-9-19 08:30 AM 发表
个人感觉那个ANSI的选项还是应该可选,因为有时候并不一定都要改为ANSI格式

1、保存为ANSI格式是减肥大户;
2、慢慢来,以后再开放这最后一项功能。
回复

使用道具 举报

20#
 楼主| 发表于 2006-9-19 12:21:38 | 显示全部楼层
原帖由 c383 于 2006-9-19 12:02 PM 发表


老大们不愿指教啊?

无语,你的水平连这个不会用?

22.JPG (3.46 KB, 下载次数: 116)

22.JPG
回复

使用道具 举报

21#
 楼主| 发表于 2006-9-19 23:20:36 | 显示全部楼层
1、
原帖由 wsadqe213 于 2006-9-19 11:07 PM 发表
提一个建议,经过你的软件处理后的文件,会在文末自动添加一个回车。


2、
再提一个建议,支持拖放操作。  


第一个不是问题,不影响使用,绝大多数文本文件都有这种现象,我以后可以改进一下。你所说的自动添加一个回车并不是因工具引起的,可能原来的文件就是这样吧。

第二个问题就算了,一个一个地拖不如对目录操作方便。
回复

使用道具 举报

22#
 楼主| 发表于 2006-9-21 10:34:53 | 显示全部楼层
原帖由 secowu 于 2006-9-21 10:22 AM 发表


关于第二个问题,如果加入,感觉也是不错了。

呵呵,至少感觉是更加友好的界面操作了。

有人喜欢直接拖,lxl就加入吧,也多不了几行代码。呵呵


___你是要拖目录还是要拖文件?
回复

使用道具 举报

23#
 楼主| 发表于 2006-9-21 11:09:45 | 显示全部楼层
一两个文件用拖方便,文件多时还是对目录操作方便,现在没时间搞这个,怕以后也没时间搞了。
现在搞一个极小的WinPE,启动到CMD.EXE或GHOST.exe(8.3版),IS_文件10MB左右。
回复

使用道具 举报

24#
 楼主| 发表于 2006-9-25 11:06:57 | 显示全部楼层
原帖由 c383 于 2006-9-24 10:26 PM 发表
以本人的I386为例,共有806个in_文件,解压后去除14个文件后剩792个inf/ini文件,共37.9M。用“inf文件减肥刀"减肥后共17.7M,但用老毛桃的批量工具压缩回in_文件后比较:前2.84m,后2.21M。看来意义不大!


这个是针对WinPE的INF文件的,如红叶盘,双子星盘、老九盘等,以前这些WinPE的INF文件一般都是半手动减肥的,这类WinPE的INF文件减肥后会少50%左右。对安装好在硬盘上的精简系统也有效,对安装源的INF文件也有一定的效果,虽然不大,正如你的由2.84M==>2.21M,也少了20%多了。
回复

使用道具 举报

25#
 楼主| 发表于 2006-9-25 17:43:09 | 显示全部楼层
原帖由 wjgyz740526 于 2006-9-25 12:59 PM 发表
想问一下你们是怎么为in_文件批量解压缩的,我用expand能批量解压但后缀名不对

小菜一碟,看下面三图,其中批量压缩是用了天风版主的注册表:

  1. Windows Registry Editor Version 5.00
  2. [HKEY_CLASSES_ROOT\*\shell\CAB最大压缩]
  3. [HKEY_CLASSES_ROOT\*\shell\CAB最大压缩\command]
  4. @="makecab /v3 /D CompressionType=LZX /D CompressionMemory=21 "%1""
复制代码

[ 本帖最后由 lxl1638 于 2006-9-25 05:44 PM 编辑 ]

WinRAR自定义压缩文件的扩展名.PNG (15.98 KB, 下载次数: 134)

WinRAR自定义压缩文件的扩展名

WinRAR自定义压缩文件的扩展名

批量解压.PNG (11.41 KB, 下载次数: 146)

批量解压

批量解压

批量压缩.PNG (16.97 KB, 下载次数: 118)

批量压缩

批量压缩
回复

使用道具 举报

26#
 楼主| 发表于 2006-9-25 21:36:38 | 显示全部楼层
原帖由 wjgyz740526 于 2006-9-25 09:28 PM 发表
谢谢,我开始用的winrar但没想到自定义扩展名

受教了!!!


开始我也和你一样,也试过用其它工具批量改扩展名为CAB,但后来想下,WinRAR作为一个出色的工具,应该有些功能是自己没有发现的,最后乱点WinRAR的菜单,果然找到了。
回复

使用道具 举报

27#
 楼主| 发表于 2006-10-3 13:33:39 | 显示全部楼层
原帖由 wjgyz740526 于 2006-9-26 07:45 PM 发表
老九,我发现你的右键菜单有文件名大写,能把这个注册表文件贴上来吗?


不是注册表,而是自己搞的一个工具,初次执行会提示你“是否注册[文件名大写]右键菜单“,再次执行会提示你“是否清除[文件名大写]右键菜单“。

UPPERNAME.RAR

36.64 KB, 下载次数: 70, 下载积分: 无忧币 -2

[文件名大写]右键菜单

回复

使用道具 举报

28#
 楼主| 发表于 2006-10-26 22:50:22 | 显示全部楼层
原帖由 guies 于 2006-10-26 09:28 PM 发表
我用了这工具精简了 WinXPE 裹的 i386\inf ,就变成不能启动网路了…
反之如果就原始文件,就正常。不过我制作的是繁体 PE..


繁体PE没试过,你的PE中有没有nettcpip.inf和netmscli.inf这两个文件,除这两个外,其它的作精简试试。
回复

使用道具 举报

29#
 楼主| 发表于 2006-10-26 23:33:57 | 显示全部楼层
原帖由 guies 于 2006-10-26 11:25 PM 发表


嗯,有这两个文件。
想一想也没什麽差啦,有精简跟没精简差了约 700k,倒是还可以接受…


说明你PE的INF目录已作了类似的精简,完全没精简过的才有效,如同用RAR压缩过的文件,再压缩也就。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-4 19:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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