无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 265531|回复: 1012

WiMNT——WIM文件挂载和制作工具 定制版 2009.4.9更新

[复制链接]
发表于 2007-9-23 16:38:44 | 显示全部楼层
对于文件关联的一个建议。
添加默认的Open菜单,像打开记事本一样,默认打开(自动挂载)。
这样可以在命令行下直接输入 xxx.wim自动挂载,或通过其它软件直接调用xxx.wim就可以打开了。
目前是不行的。我自己添加了一个后就可以了。
ftype "Windows Image"="xxxxxx"
  xxxxxx 自动挂载的命令行。
回复

使用道具 举报

发表于 2007-9-23 18:10:19 | 显示全部楼层
还是加了一个选项吧,可以选择不注册open项(默认自动挂载)。
因为这是默认的打开方式(在某些情况下还是有用的)。

:lol 会不会要求太高了。;P

[ 本帖最后由 chenall 于 2007-9-23 06:11 PM 编辑 ]
回复

使用道具 举报

发表于 2007-9-25 09:44:52 | 显示全部楼层
试了下,基本OK,不过文件大小竟然比以前增加了60KB

之前528KB  -->584KB
回复

使用道具 举报

发表于 2007-11-28 17:53:16 | 显示全部楼层
提个意见,能不能让挂载的目录支持系统变量?

像一些软件习惯放置于%programfiles%目录下,
但这个目录每个系统又不一定一样。能让WIMNT的挂载目录(写入到WIM文件的路径)支持系统变量就OK了.
回复

使用道具 举报

发表于 2007-11-29 16:42:45 | 显示全部楼层
如果增加的容量不大的话,我觉得还是加入比较方便。
回复

使用道具 举报

发表于 2007-11-29 22:06:59 | 显示全部楼层
不可以实时读取变量吗?
写入设置的是%%格式的,使用时才将这个转换为对应的变量。

如果需要预先加载系统环境变量,那将得不尝失。

要不然就换个方式,不知这样子是否可行。

先读取相应设置然后再调用自身的挂载命令进行命令行挂载。
③.指定挂载:/M <Wim映像文件> [/I 映像卷ID] [/MP 挂载路
径] [/O 打开文件] [+O|-O] [+R|-R] [+B|-B] [+W]
回复

使用道具 举报

发表于 2007-12-4 14:50:27 | 显示全部楼层
今碰到一个问题

关于全局设置.
现在的全局设置是保存到注册表 HKCU分支中的也就是保存到当前用户的注册表里面.

如果换了一个用户,就必须重新设置.

我建议,保存到注册表HKLM分支中,这样才是全局的.不管是什么用户登录设置都是一样的.

或者支持INI配置.可以从INI中读取.

免得换个用户就要重启设置一下..

碰到此问题的原因是,为了减小磁盘占用空间我想将系统中的一些比较少用东西用WIM打包.
启动时再自动挂载上去.

自动挂载,我是利用启动系统服务的方式挂载的,这时问题来了,因为我的设置是保存在当前用户下的.

但是启动服务用的是SYSTEM帐户,所以设置不一样,造成挂载出现问题.

希望下个版本可以改进.

呵呵,用WIM打包后, C:又多了一些可用空间.

将一些占用空间很大的软件目录,用WIM打包,启动时自动挂载.(像播放器,OFFICE,Q)

不但点用空间小了,而且又不怕病毒又安全.真是一举多得.

另附上ExpandEnvironmentStrings的API 的VB调用例子,
delphi里面使用方法应该差不多吧.


VB声明
Declare Function ExpandEnvironmentStrings Lib "kernel32" Alias "ExpandEnvironmentStringsA" (ByVal lpSrc As String, ByVal lpDst As String, ByVal nSize As Long) As Long
说明
扩充环境字串。具体操作过程与命令行处理的所为差不多。也就是说,将由百分号封闭起来的环境变量名转换成那个变量的内容。比如,“%path%”会扩充成完整路径。在vb里经常用于为新进程创建一个环境块
返回值
Long,lpDst要求的缓冲区的大小。如nSize小于这个数字(也就是说,缓冲区太小,以至不能全容下扩充过后的字串),那么lpDst不会被载入。可利用这个结果改变字串的大小。零表示遇到错误。会设置GetLastError
参数表
参数类型及说明
lpSrcString,欲扩充的字串
lpDstString,扩充过后的字串
nSizeLong,lpDst的长度。注意预先对lpDst进行初始化,使其与这个长度相符
示例
Dim s$, dl&
Dim y As String * 5
s$ = "%PATH%"
dl& = ExpandEnvironmentStrings(s$, y, 499)
Print y


[ 本帖最后由 chenall 于 2007-12-4 02:55 PM 编辑 ]
回复

使用道具 举报

发表于 2007-12-4 21:48:07 | 显示全部楼层
不知下个版本有没有对全局设置作修改.

如果不做改变能否麻烦给我一个定制版,全局设置写入INI.

谢!我考虑使用WIM文件配合WIMNT来部署我们的办公软件.
关于全局设置.
现在的全局设置是保存到注册表 HKCU分支中的也就是保存到当前用户的注册表里面.
如果换了一个用户,就必须重新设置.

我建议,保存到注册表HKLM分支中,这样才是全局的.不管是什么用户登录设置都是一样的.
或者支持INI配置.可以从INI中读取.

[ 本帖最后由 chenall 于 2007-12-4 10:51 PM 编辑 ]
回复

使用道具 举报

发表于 2007-12-5 10:45:02 | 显示全部楼层
原帖由 stwcb2007 于 2007-12-4 10:50 PM 发表


部署办公软件不太实际
难道说双击一个DOC文件
就会自动挂载上OFFICE2003
并用WORD打开这个文件么
貌似不会的说

本人较喜欢绿软
可以不写注册表最好了



一般来说,办公软件的安装目录会很大从几十到几百.用WIM压宿后,可以有效的减小占用空间.

而且还可以防毒.

使用上和以前一样没有半点区别(启动的时候就已经自动挂载到相应的目录上去了).

在自动挂载的时候再配合批处理,就可以很容易实现自动更新.
回复

使用道具 举报

发表于 2007-12-8 13:43:05 | 显示全部楼层
什么时候放出新版啊?
回复

使用道具 举报

发表于 2007-12-9 15:03:09 | 显示全部楼层
已下载更新,
又有一些小问题.

1.可否增加为每个WIM文件指定特定TEMP目录的功能(有指定就写入WIM文件,无指定就用默认)
因为:我使用内存盘作为TEMP.内存盘一般情况下不会太大.
有时候某此WIM挂载后会产生比较大的文件TEMP目录放不下.就会失败,这时如果可以为这个WIM指定其它TEMP路径,就OK了.
注:我用WIMNT里面设定了一个临时用的TEMP路径后(不保存全局)然后选择一个WIM文件挂载,这个WIM文件所使用的TEMP路径是新设的路径,而不是之前设置的.

2.发现一个特点,不知是不是WIMNT里面对所输入的字符全部大写转换了.
经过WIMNT处理过后,文件名/路径之类的字符全部是大写的,感觉很不美观,能否保留原样?不做转换
像以下两个目录,虽然在WIN下处理起来是一样的,但是看起来却不一样.
Microsoft Office
MICROSOFT OFFICE

3.能否默认设置不自动打开目录.

4.个人觉得还是尽量不写注册表为好.全局可以保存在INI文件下.(比较绿色)
对比:
保存在HKLM注册表,普通用户不能修改全局设置.但是对所有用户生效.重装系统需重设
保存在HKCU注册表,普通用户可以修改全局设置,但是只对该用户生效.重装系统需重设
保存在INI文件中,所有用户都可以修改设置,也同时对用所有用户生效.重装系统不需重设.

呵呵,以上这只是我的看法,并非很必要.
回复

使用道具 举报

发表于 2007-12-9 19:08:08 | 显示全部楼层
原帖由 nn2nn 于 2007-12-9 04:38 PM 发表
1、注:我用WIMNT里面设定了。。。
是这样的,但除了测试,没人这样做。
TEMP满的问题:
当TEMP不设定时,用系统的TEMP。(一般可用这个)
如果满了,可以挂前/REG设定一下。
2、字符全部大写转换是为了确定 ...


我还奇怪,为什么用WIMNT处理过的文件,不管是挂载目录,还是自身文件等,都是大写的.看起来有点不爽

经过你的解释,明白当初这样子设置的原因了.

呵呵,我这个比较完美主义.
回复

使用道具 举报

发表于 2007-12-10 13:22:05 | 显示全部楼层
原帖由 nn2nn 于 2007-12-9 10:15 PM 发表
我以为象MICROSOFT OFFICE也只有卸载时才能看到,
优化一下变成全大写了,不应该改文件名的,下一版改过来。

帮我看看,哪里还有改文件名大小写的,我一起更正。


WIM文件名(自动生成或优化后的)都是大写的.
目录名(自动生成的).
卷名(自动生成的)
回复

使用道具 举报

发表于 2007-12-11 23:17:58 | 显示全部楼层
再给个建议,新版是不是像WIMTOOLS一样也加上卸载时自动处理的命令.
虽然在PE下是不用卸载,但是在正常系统下有些程序是需要卸载的.

另,即然WIMTOOLS和WIMNT都有自动处理功能.何不和老九(菜刀)大大讨论一下.

是否可以将两者自动处理功能,兼容一下./自动挂载路径/自动启动的程序/

这样一来无论用WIMTOOLS或WIMNT处理过的绿色软件,都可以直接使用.
回复

使用道具 举报

发表于 2007-12-24 22:52:13 | 显示全部楼层
再提一个意见.
关于WIMSETUP.INI能否增加一个功能

在支持WIMSETUP.INI的同时,也支持启动时运行.

比如,某个工具箱.WIM
双击时可以先自动执行指定的程序,然后再显示WIMSETUP.INI菜单.

不知说明白了没.呵呵.

某些情况下需用到,现在的版本,我如果指定的自动运行的程序.就不显示WIMSETUP.INI界面了.
回复

使用道具 举报

发表于 2007-12-26 12:25:59 | 显示全部楼层
WIMNT执行脚本wimsetup.ini 的内容

[信息]
版本=1.0
[初始化]
标记=             注册表标记或文件标记
EXEC=           可执行文件
INF=
REG=

[MENU0]         菜单的第一行,从0开始。
显示=打开文件名                   打开本WIM文件的文件名
...
显示=打开WIM文件名   打开本WIM文件下某WIM文件名
...
[打开文件名]
ICON=
描述=
[打开WIM文件名]
打开=打开文件名   打开本WIM文件下某WIM文件的自动执行文件
ICON=
描述=
只读=                     是否以只读打开
挂栽路径=
[结束]
卸载=                    是否 卸载。用于只有初始化操作的WIM文件。


不知WIMNT什么时候完成二楼的上面这些所有功能.

另,又有问题.
1.当使用WIMNT命令行挂载时.
可不可以自动检测,如果是已经挂载过的(同一目录)就不再挂载直接返回挂载成功.

现在的版本我用命令行挂载,由于之前有挂载过,可是我想多次运行,第一次正常.
第二次就跳出WIMNT的窗口.显示挂载失败.

2.关于内部变量的支持,好像不支持在CMD内部使用.
我试了不行,在CMD里面调用%wimnt%失败.可以通过加参数解决.

3.还是老问题,关于挂载目录支持系统环境变量的问题.
上面的两个问题是由于这个所以用命令行挂才遇到的.
因为有些软件,它需要的挂载目录并不是固定的(根据用户名的不同而不同),需要像%USERPROFILE%之类的目录才可以.
所以.....

[ 本帖最后由 chenall 于 2007-12-26 12:33 PM 编辑 ]
回复

使用道具 举报

发表于 2007-12-26 16:35:24 | 显示全部楼层
1、N前就可以了。如果失败,那是具体情况,请详细点。(文件名,CMD等)

是指用CMD命令挂载时出现的失败(原因,因为已经挂载过一次,再次挂载同一文件,同一目录就失败)
失败就跳出WIMNT的界面有点不爽(因为是批处理中的,即然是批处理就应该有得选择,不显示界面的,一般用批处理执行某个程序应该可以根据返回的值来确定是否成功的)
命令行:
wimnt /m xxx.wim /mp 挂载路径

2、%wimnt%,CMD.EXE不会解释,请传参数。

这个不打紧,我之前还以为可以支持呢.后来直接将参数传给CMD.

3、如果需要,可以让下一版本的WIMNT 解释环境变量。但请具体点, 解释环境变量哪个位置的。

解释环境变量哪个位置的.
不能直接实时读取当前的系统变量吗?如果简单解释,我遇到过的就以下三个比较经常用到
%USERPROFILE%,%APPDATA%,%ProgramFiles%

另:WIMNT执行脚本wimsetup.ini 的内容
当时只是设想,有需要的加入。[初始化]这段下一版本加入。
这样就不用LOAD命令了。

支持!!

因为有些软件,它需要的挂载目录并不是固定的(根据用户名的不同而不同),需要像%USERPROFILE%之类的目录才可以.
你通过CMD或SHELL挂载,CMD或SHELL都会解释%USERPROFILE%之类的目录的;挂载后,%MountDir%就是挂载的目录。

如果想在WIM文件的设置里,设置挂载目录,这个就要WIMNT来解释。
一般来说,挂在哪,用起来一样。反而%USERPROFILE%有时会出问题,如ISO格式的PE。

挂这些目录是有原因的,因为有一些软件必须将某些目录放这特定%USERPROFILE%里面指定位置才行的.
不放那就不行,没办法啊.

WIMNT有强大的虚拟目录功能,强烈建议使用虚拟目录挂载,如W:\WIMTOOLS。

不知是不是因为我的系统是2003的问题,还是其它的
我用不了虚拟目录.
设置固定目录W:\视频音频\PPLIVE

显示对话框提示
no for*W:\视频音频\PPLIVE


SUBST w: %temp%
后可以使用.
另,我注意到,执行时会生成一个W:但是只是闪一下就没有了(开着资源管理器可以看到又消失了),不可访问.

还有,我发现这个虚拟目录怪强的,我宿舍的电脑系统是XP的.
F:本来是光驱,因一次写错的虚拟目录,路径到F:\我的工具\MAXTHON.WIM
发现竟然也可以用,再打开我的电脑,发现F:还是光驱图标,但双击进去里面的文件已经变了
呵呵,很不错.

期待新版...

[ 本帖最后由 chenall 于 2007-12-26 04:53 PM 编辑 ]
回复

使用道具 举报

发表于 2007-12-27 00:27:15 | 显示全部楼层

回复 #474 nn2nn 的帖子

关于第一点可能我没有说请楚.
请你到以下地址
http://chenall.ys168.com/
soft\ppstream.wim
下载这个文件测试.

里面就包含了第1条问题也和挂载目录%USERPROFILE%/,%APPDATA%有关.
双击第一次执行是正常的,第二次就会跳出WIMNT的界面.
因为不想对系统原有的数据进行修改(可能之前有装过,不想改变它的内容),所以采用WIM挂载的方式.

当然了这只是一个显示问题的例子(解决方法有很多种).

另,关于虚拟目录挂载出错的问题,我现在再试了下却无法重现.
之前的设置基础挂载路径是R:\WIMTOOLS
R:是用RRAMDISK虚拟出来的内存盘.
而我软件设置的固定目录是W:\XXXXX
出现错误,当时用SUBST W: R:\暂时解决了,
重启了电脑却又正常了.


其实关于挂载目录支持环境变量的问题并不是很需要的,因为很少用到.我只是觉得如果支持的话将会比较方便.

第一个问题,用批处理命令行挂载,我希望不管如何不要出现界面(因为用了批处理就代表要自动处理可能出现的问题),失败也跳过(如果能够返回一个值的话当然更好了.或许应该加个参数来决定因为有时还是需要提醒挂载失败的).

[ 本帖最后由 chenall 于 2007-12-27 12:28 AM 编辑 ]
回复

使用道具 举报

发表于 2007-12-27 11:47:19 | 显示全部楼层
晕,你的系统没有%APPDATA%变量?
看看里面的INSTALL.CMD批处理,我是用批处理挂载的,
将%APPDATA%变量换成
"%USERPROFILE%\Application Data"
试试.
回复

使用道具 举报

发表于 2007-12-27 12:53:57 | 显示全部楼层
要全路径的。.
试了下,原来如此.
是用完全路径比较的.然怪第一次执行就正常,第二次就不正常了,因为路径一个是完整的,一个是相对的.

不用全路径,第一次挂载是正常的.
回复

使用道具 举报

发表于 2007-12-28 22:40:09 | 显示全部楼层
原帖由 nn2nn 于 2007-12-28 09:00 PM 发表
增加WIMSETUP.INI的功能,如:
;初始化
exec=wps.cmd ;命令行
[default]                    &# ...


支持,不知有没有加入卸载时执行某个程序或批处理的功能?
另,初始化,不知是否支持启动多个程序?像下面的

等待新版(元旦版)

[ 本帖最后由 chenall 于 2007-12-28 10:43 PM 编辑 ]
回复

使用道具 举报

发表于 2007-12-28 23:28:37 | 显示全部楼层
还没有认真研究过AUTOIT,有空慢慢研究下.呵呵.

另,又想到一点,关于
%WimDir%     表示WIM文件的目录
%MountDir%   表示WIM文件挂载的目录
%Wimnt%'     表示WIMNT.EXE文件的路径
不知是否可以做成像PECMD一样.
在PECMD中可以设置一个临时变量只对PECMD的进程和下级进程有效的
用PECMD的脚本启动批处理,可以直接使用%变量名%来调用PECMD里面设置的变量.
这样就省去传递参数的麻烦了..
不知我的要求会不会太多了.嘿嘿.
回复

使用道具 举报

发表于 2007-12-29 22:27:43 | 显示全部楼层
先下载测试,等好久了.
回复

使用道具 举报

发表于 2007-12-29 22:54:07 | 显示全部楼层
初试了下,效果很理想.谢谢楼主的努力.
1.调用的CMD里面直接支持%WIMNT% %WIMDIR% %MountDir%变量.就不用传递参数了.
2.挂载目录也已经支持环境变量可以使用%USERPROFILE%\XXX了.
3.初使化,测试OK.
[init]
exec=test.cmd
tag=%mountdir%\test.txt
4.默认执行,测试结果.
当time设置的值N>0时,执行等待N秒后自动执行.
当n<=0时,不自动执行,而是点击[X]关闭WIMSETUP.INI跳出的窗口后才执行(点击里面的程序启动窗口消失,也不执行).
5.当WIMSETUP.INI里面没有菜单项时也会跳出一个窗口.但是没有用处.

[ 本帖最后由 chenall 于 2007-12-29 10:55 PM 编辑 ]
回复

使用道具 举报

发表于 2007-12-31 16:11:38 | 显示全部楼层
报一个BUG.
点击[X]关闭弹出界面后会自动执行[init] exec项.
可以通过一个批处理.里面写上
echo.test>>c:\aa.txt
会发现启动界面时会根据TAG项执行一次.点[X]关闭后又会执行一次.
回复

使用道具 举报

发表于 2008-1-1 00:21:55 | 显示全部楼层
找到原因了,应该算是BUG吧.
因为我的那个CMD文件是SETUP.CMD
WIMSETUP.INI里面
[init]
exec=setup.cmd

启动时会通过INIT执行SETUP.CMD一次,点[X]后又会执行一次.
换成其它文件名就不会.
回复

使用道具 举报

发表于 2008-2-3 18:59:18 | 显示全部楼层
不知WIMNT能否支持这样的功能.可以接收给.WIM文件加的参数.如
A.WIM
里面有A.CMD或A.EXE,已设为自动启动程序.
在命令行下执行
A.WIM test
能否直接把这个test参数传给A.CMD或A.EXE,这样一来会方便许多,
虽然可以通过WIMNT.EXE的命令行来实现但是不太方便.
回复

使用道具 举报

发表于 2008-2-3 20:49:10 | 显示全部楼层
试了一下,按照我上面的命令不成功,test.wim test
test参数没有传给WIM里面的指定程序(或自动执行的程序).

看图应该是指通过环境变量传参数吧.
不理想.理想状态下,也就是把WIM文件当成是一个应用程序,可以接受其它参数.
例子某个程序,
test.exe /help
会显示帮助(程序内定的功能).
同理的
test.wim xxxx
是不是也可以执行指定程序的xxxx功能呢?
例子
test.wim内一个文件TEST.EXE
test.EXE内有接受参数的,当参数为1是执行1的功能,为2时执行2的功能.
test.wim 1 就执行1的功能,
test.wim 2 就执行2的功能.

这样不是方便了很多,再加上以后的图标支持,就可以将某个程序打包成WIM后.直接当成原程序来用.而不需要改动很多的内容.

不知说清楚了没.....
回复

使用道具 举报

发表于 2008-2-3 22:10:46 | 显示全部楼层
只要在程序里面能够接收参数然后传给自动执行的程序即可.
还需要改下注册表
将默认执行的参数"%1"改为
"%1" %*
就可以接收其它参数,%1WIM文件本身,%*所有参数.

附修改注册表后执行的效果.
C:\WINDOWS>C:\temp.WIM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
"C:\temp.WIM"
"C:\temp.WIM"  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
请按任意键继续. . .

调用的批处理文件内容.
@echo off
echo.%1
echo.%*
pause

[ 本帖最后由 chenall 于 2008-2-3 10:17 PM 编辑 ]
回复

使用道具 举报

发表于 2008-2-4 11:02:56 | 显示全部楼层
以上的命令我的试过,但很麻烦,
%WIMNT% /M Test.wim /O test.exe,xxxx
在没有使用利用WIMNT调用某个WIM文件之前单单CMD下是没有%WIMNT%变量的,
需要知道WIMNT装在哪个位置了.
即使像上面的
Test.wim /O test.exe,xxxx
还需要知道执行的程序是test.exe才可以,
不能做得更方便一些吗?把WIM当成一个完整应用程序.因为有一些参数是不一定的.不能预先知道.

一个WIM文件,可以直接运行,也可以加不同参数运行来达到不同的结果.
就像其它程序一样,.

好像注册表里面
"%1" %*
%*代表%1后面的所有参数并不包括%1(即文件名).

程序里面添加这个功能应该也不是很麻烦,甚至只需添加几行代码即可.
1.读取%*的所有参数.
2.当是自动挂载时就将%*的参数直接传给自动启动的程序.
只需处理自动挂载事件.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-2-18 02:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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