无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: lxl1638
打印 上一主题 下一主题

[2024年11月10日更新]WimTool -- Wim文件的图形视窗处理工具[无忧首发]

    [复制链接]
121#
发表于 2007-6-17 01:17:39 | 只看该作者
回复

使用道具 举报

122#
 楼主| 发表于 2007-6-20 11:27:02 | 只看该作者
原帖由 nn2nn 于 2007-6-16 05:16 PM 发表
建议:
wimtool支持MOUNT命令行参数。

有时wimtool也用在CMD里。


更新一下,1.07.0623版。

1、应 nn2nn 的要求,增加了两个命令行参数;
2、修正了映卷号输入框的一处BUG(原这个输入框的数字被删空时会弹出一个窗口);
3、修改了若干处的信息提示内容;
4、将全部非英文字符串做入资源文件,方便繁体本地化。
回复

使用道具 举报

123#
发表于 2007-6-20 11:57:35 | 只看该作者
没有,那个函数不会,所以留下两个已知问题。
回复

使用道具 举报

124#
发表于 2007-6-20 14:00:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

125#
 楼主| 发表于 2007-6-20 14:29:30 | 只看该作者
原帖由 nn2nn 于 2007-6-20 02:00 PM 发表
4、将全部非英文字符串做入资源文件,方便繁体本地化。

LZ做了大量的工作。
资源再恢复到原来的地方,也是很麻烦,就是105代表什么,不知道要查多少次。

LZ辛苦了。


的确是这样,以代码中引用资源本人历来最怕了,资源字符串多的时候,要来回反复查资源ID。
回复

使用道具 举报

126#
发表于 2007-6-20 19:22:24 | 只看该作者
:lol 支持强人一下~~~
回复

使用道具 举报

127#
发表于 2007-6-20 20:24:36 | 只看该作者
:)哈哈,已经满座了吗?今天刚看到,下来使用看看,谢谢分享!
回复

使用道具 举报

128#
发表于 2007-6-21 00:50:25 | 只看该作者
支持.....................谢谢
回复

使用道具 举报

129#
发表于 2007-6-21 08:47:16 | 只看该作者
试用一下,非常感谢!!!
回复

使用道具 举报

130#
发表于 2007-6-22 13:38:46 | 只看该作者
新东西是越来越多的了。
使用都使用不过来了。都不要说学习了。
都怪自己脑子不好使.
不好好学习。现在什么都不懂了
回复

使用道具 举报

131#
发表于 2007-6-22 14:24:23 | 只看该作者
又出新版本了。。强啊!!
回复

使用道具 举报

132#
发表于 2007-6-23 11:56:19 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

133#
发表于 2007-6-23 15:39:42 | 只看该作者
謝樓主分享,回帖是一定要的啦!
回复

使用道具 举报

134#
 楼主| 发表于 2007-6-23 20:48:02 | 只看该作者
更新到V1.07.0625版,增加了对映卷名的处理和查看映像详细信息两项功能(见主题的红字),
同时简单美化了一下界面,支持XP主题(要在XP或Vista系统中才能体现)。

[ 本帖最后由 lxl1638 于 2007-6-23 09:24 PM 编辑 ]
回复

使用道具 举报

135#
发表于 2007-6-23 21:01:14 | 只看该作者
又更新了!!!!!
好看!!
回复

使用道具 举报

136#
发表于 2007-6-24 04:06:39 | 只看该作者
打开一个比较大的wim(vista安装盘中的install.wim 2.22G)查看镜像信息时出现以下情况,必须在任务管理器里强行关闭

[ 本帖最后由 yanghere 于 2007-6-24 04:09 AM 编辑 ]

Snap1.png (26.69 KB, 下载次数: 523)

弹出未知对话框

弹出未知对话框

Snap2.png (21.2 KB, 下载次数: 571)

点击确定后

点击确定后

Snap3.png (14.93 KB, 下载次数: 554)

并非无响应

并非无响应
回复

使用道具 举报

137#
发表于 2007-6-24 10:22:55 | 只看该作者
好极了。。。。。。
回复

使用道具 举报

138#
 楼主| 发表于 2007-6-24 11:57:08 | 只看该作者
原帖由 yanghere 于 2007-6-24 04:06 AM 发表
打开一个比较大的wim(vista安装盘中的install.wim 2.22G)查看镜像信息时出现以下情况,必须在任务管理器里强行关闭


你将那个 Install.wim 文件的信息(用参数 /INFO)导出来,帖上论坛让本人看看,估计(2G)是数值越界了,要处理一下代码看看。
回复

使用道具 举报

139#
发表于 2007-6-24 12:11:55 | 只看该作者
我用imagex的/info得到的,老九看看啊

info.zip

1.09 KB, 下载次数: 142, 下载积分: 无忧币 -2

回复

使用道具 举报

140#
 楼主| 发表于 2007-6-24 13:01:24 | 只看该作者
原帖由 yanghere 于 2007-6-24 12:11 PM 发表
我用imagex的/info得到的,老九看看啊


搞定了,要整理一下,半小时以后不发的话,下午再发。
你帮本人对照一下结果是不是一样,是到一个有Vista系统的朋友家里测试的(本人的破机装不起该死的Vista),
不看不知道,2G多的DVD中有5个不同版本的Vista系统!
执行查看映像信息任务...

读取映像文件属性...
打开映像文件: 成功
读取映像属性: 成功
关闭映像文件: 成功

读取映像文件信息...
打开映像文件: 成功
读取映像信息: 成功
关闭映像文件: 成功

映像基本属性如下:

文件路径: G:\Windows.Vista\install.wim
设备GUID: {A4C5C101-EB8E-4C4E-AE15-4343BC255E20}
映像卷总数: 5
所属压缩类型: 最大压缩
是否属分包文件: 否
可启动映像卷号: [没有设置]
映像文件大小: 2323919438字节

各分卷详细信息如下:

映像卷号: 1
映像卷名: Windows Vista BUSINESS
映卷描述: Windows Vista Business
目录数目: 7147
文件数目: 39062
解开大小: 7135020290字节
创建时间: 2006-11-2, 13:37:2
修改时间: 2006-11-6, 2:4:22

映像卷号: 2
映像卷名: Windows Vista HOMEBASIC
映卷描述: Windows Vista HomeBasic
目录数目: 6715
文件数目: 36867
解开大小: 6631599418字节
创建时间: 2006-11-2, 13:34:8
修改时间: 2006-11-6, 2:7:52

映像卷号: 3
映像卷名: Windows Vista HOMEPREMIUM
映卷描述: Windows Vista HomePremium
目录数目: 7218
文件数目: 39260
解开大小: 7999966017字节
创建时间: 2006-11-2, 13:40:41
修改时间: 2006-11-6, 2:13:54

映像卷号: 4
映像卷名: Windows Vista ULTIMATE
映卷描述: Windows Vista Ultimate
目录数目: 7625
文件数目: 40982
解开大小: 8088242253字节
创建时间: 2006-11-2, 13:41:31
修改时间: 2006-11-6, 2:18:24

映像卷号: 5
映像卷名: Windows Vista STARTER
映卷描述: Windows Vista Starter
目录数目: 6641
文件数目: 36345
解开大小: 6555029787字节
创建时间: 2006-11-2, 14:3:12
修改时间: 2006-11-6, 2:23:10

查看映像属性: 成功
查看映像信息: 成功

[ 本帖最后由 lxl1638 于 2007-6-24 01:03 PM 编辑 ]
回复

使用道具 举报

141#
 楼主| 发表于 2007-6-24 14:07:18 | 只看该作者
搞定,功能不变,仅是修正BUG,所以版本号定为:
WimTool V1.07.0625F

1、修正了 yanghere  提到的GUB,支持对超大映像的处理;

2、在XP/2K3及其PE系统中对XML组件服务进行检测,若不发现XML,
     WimTool直接屏蔽与之相关的的功能。但在Vista系统中现有
     的API无法对XML组件服务进行检测,所以在Vista系统中这些
     功能是开放的,精简的PE2.0如果没有这项服务时这些功能也
     不能使用(强行使用时可能会使WimTool挂死)。

[ 本帖最后由 lxl1638 于 2007-6-24 02:20 PM 编辑 ]
回复

使用道具 举报

142#
发表于 2007-6-24 14:36:40 | 只看该作者
老大就是老大,效率真是太高啦!
已经下载并测试,可以支持了。
感谢老九:victory:
回复

使用道具 举报

143#
 楼主| 发表于 2007-6-24 15:54:57 | 只看该作者
原帖由 yanghere 于 2007-6-24 02:36 PM 发表
老大就是老大,效率真是太高啦!
已经下载并测试,可以支持了。
感谢老九:victory:


有空慢慢帮本人测试其它功能,如果没有出有BUG,这个工具就停止更新了。

另,用它打开大体积的文件时好象很慢,不知 Imagex 也是不是这样的?
回复

使用道具 举报

144#
发表于 2007-6-24 16:05:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

145#
发表于 2007-6-24 16:18:54 | 只看该作者
原帖由 lxl1638 于 2007-6-24 03:54 PM 发表


有空慢慢帮本人测试其它功能,如果没有出有BUG,这个工具就停止更新了。

另,用它打开大体积的文件时好象很慢,不知 Imagex 也是不是这样的?

这几天在构思用wim来打包多版本xp,在pe下自动安装的安装盘,会反复用到老大的东西的,如果有问题我一定第一时间贴上来。
回复

使用道具 举报

146#
 楼主| 发表于 2007-6-24 16:31:06 | 只看该作者
原帖由 nn2nn 于 2007-6-24 04:05 PM 发表
1、修正了 yanghere  提到的GUB,支持对超大映像的处理;

通过什么办法可以修正这个BUG?


先检测OLE变量的类型,对不同的类型再作不同的转型。
不过发现,WimTool里所用到的数据都是 String 类型的,
后来本人又把检测变量类型这部分代码砍掉了,直接转型。
回复

使用道具 举报

147#
发表于 2007-6-24 16:41:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

148#
 楼主| 发表于 2007-6-24 17:42:50 | 只看该作者
XML控件的属性是OLE类变量,有些是 WideChar 类型,有些是 DWORD 类型,有些是 Int64 类型。

没有对变量作必要的检测,在一些没有设置"映卷名"的映像里,While循环不会发现有 Child_Node.NodeName 的,没有发现它也就读不到映像的这个字节(元素)。本人是用 First_Node.ChildValues['NAME'] 去读取映像的名字,它的返回值给下面的函数分析:

function OleVarToString(const OleValue: OleVariant): string;
{$J+}const NotSetStr: string = ''; {$J-}
begin
  if NotSetStr = '' then
    NotSetStr := LoadMyResString(IDS_NotSet); //NotSetStr是字符串[没有设置]
  if VarIsNull(OleValue) then Result := NotSetStr
  else Result := String(OleValue);
end;

因此 OleVarToString(First_Node.ChildValues['NAME']) 返回的字符串是映卷的名字或[没有设置](如果没有设置的话)
如果不用 VarIsNull 对变量 OleValue 作简单的判断直接用 String(OleValue) 转型的话会出错。

[ 本帖最后由 lxl1638 于 2007-6-24 05:46 PM 编辑 ]
回复

使用道具 举报

149#
发表于 2007-6-24 18:06:33 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

150#
 楼主| 发表于 2007-6-24 18:43:57 | 只看该作者
本人所说的While是对'IMAGE'而言的,在While里历扁所有的'IMAGE'。

有些映卷是没有名字的,即还没有设置名字,肯定找不到,name的值必为'',
又判断 name 的值是否为''?即:

if name  = '' then name:='[没有设置]';

同样有些映卷也没有描述的,又要判断一次描述是否已设置。


你与本人的区别是:
你是用 FindNode 找子节的方法,如果这个节不存在就找不到,要在一轮循环后对你的找的节是否存在作判断。
本人是用 ChildValues 读节的方法,如果读出为 NULL 说明它没有设置,能读到就是它的真实数据,读不到就将这个数据说明为'[没有设置]',代码量会更少。

映卷名 := OleVarToString(First_Node.ChildValues['NAME']);
卷描述 := OleVarToString(First_Node.ChildValues['DESCRIPTION']);

[ 本帖最后由 lxl1638 于 2007-6-24 06:45 PM 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 00:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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