|
话说为了保证量产的时候外置程序能正常加载,我调整了pecmd.ini中load winpe.ini的顺序,先加载explorer.exe,然后再load winpe.ini。并且在桌面上增加了部分快捷方式。结果牵一发而动全身,很多地方都要修改,发现了很多问题。
原版pecmd.ini的部分如下:
LINK %Desktop%\加载外部配置,%SS%\PECMD.EXE,LOAD \WXPE\外置程序\WinPE.INI,Shell32.dll#26
//如果不是加载最小模式,就加载外部配置。
FIND $%MinMode%=Yes,!TEAM TEXT|LOAD \WXPE\外置程序\WinPE.INI
//加载EXPLORER.EXE并对屏幕显示的内容进行清理;
//启动时LOGO画面的渐隐淡出效果就是由此处的LOGO语句形成。TEXT语句用于清除显示的文字。
FIND Explorer.EXE,!TEAM SHEL %WinDir%\EXPLORER.EXE|LOGO|TEXT
调整pecmd.ini的部分如下:
LINK %Desktop%\加载外部配置,%SS%\PECMD.EXE,LOAD \WXPE\外置程序\WinPE.INI,Shell32.dll#26
//启动时LOGO画面的渐隐淡出效果就是由此处的LOGO语句形成。TEXT语句用于清除显示的文字。
FIND Explorer.EXE,!TEAM SHEL %WinDir%\EXPLORER.EXE|TEXT
//如果不是加载最小模式,就加载外部配置。
FIND $%MinMode%=Yes,!LOAD \WXPE\外置程序\WinPE.INI
TEAM TEXT|LOGO
结果发现个问题,桌面上的图标顺序不连续,在pecmd和其他图标之间有空白处,仔细检查了pecmd.ini,找到了问题。原因是pecmd.ini中先在桌面创建加载外部配置的链接,然后删除造成了图标不连续。修改成首先检查是否为最小模式,如果是最小模式就在桌面创建加载外部配置的链接,如果正常模式就直接加载winpe.ini。
pecmd.ini做如下调整:
//加载EXPLORER.EXE并对屏幕显示的内容进行清理;
//启动时LOGO画面的渐隐淡出效果就是由此处的LOGO语句形成。TEXT语句用于清除显示的文字。
FIND Explorer.EXE,!TEAM SHEL %WinDir%\EXPLORER.EXE|TEXT
//如果不是加载最小模式,就加载外部配置。
FIND $%MinMode%=Yes,LINK %Desktop%\加载外部配置,%SS%\PECMD.EXE,LOAD \WXPE\外置程序\WinPE.INI,Shell32.dll#26!LOAD \WXPE\外置程序\WinPE.INI
TEAM TEXT|LOGO
结果又发现了个问题,正常加载启动的时候开始菜单程序里面没有快捷方式,出现在启动组里面的是注册程序和创建开始菜单快捷方式的两个链接,单击后才能加载程序。仔细检查了下winpe.ini,找到了原因。原版pecmd.ini里面是先加载explorer.exe,然后根据是否最小模式加载winpe.ini,而winpe.ini里面是通过在进程里面超找explorer.exe的方式来判断是否为最小模式,调整pecmd.ini之后,先加载的是explorer.exe,因此进程里面肯定存在explorer.exe,winpe.ini找到之后判定为正常模式,然后通过load1子程序创建那两个快捷方式。为了解决这个问题,了解到pecmd.exe加载顺序是这样的:pecmd.ini→winpe.ini→LOADDESKTOP.INI加载桌面快捷方式→LOADKJ.INI加载开始菜单快捷方式,所以pecmd.ini里面定义的环境变量%minmode%在LOADDESKTOP.INI和LOADKJ.INI仍然有效,我注释掉那个FIND Explorer.EXE,ENVI Mini=Yes!ENVI Mini=No语句,把%mini%全部替换为%minmode%,通过pecmd.ini里面全局环境变量%minmode%来判定是否为最小模式,同时修改load1,load2,最小配置模式创建快捷方式,正常启动模式直接加载loadkj.ini开始菜单。
原版winpe.ini部分如下:
//判断是否从最小模式启动后加载外置并将判断结果保存在Mini变量中。
FIND Explorer.EXE,ENVI Mini=Yes!ENVI Mini=No
//......
//由最小配置模式加载外置时执行。
_SUB Load2
//将常用文档与对应外置程序建立关联。主要是进行注册表操作。
EXEC @%CurDir%\REGDOC.CMD
//为外置程序创建开始菜单的快捷方式。
LOAD %CurDir%\LOADKJ.INI
_END
//正常启动加载外置时执行。
_SUB Load1
//该快捷方式将常用文档与对应外置程序建立关联。主要是进行注册表操作。
LINK %Programs%\启动\注册程序,%WinDir%\SYSTEM32\PECMD.EXE,EXEC @%CurDir%\REGDOC.CMD,%WinDir%\SYSTEM32\SHELL32.DLL#43
//该快捷方式将为外置程序创建开始菜单的快捷方式。
LINK %Programs%\启动\创建快捷方式,%WinDir%\SYSTEM32\PECMD.EXE,LOAD %CurDir%\LOADKJ.INI,%CurDir%\PE_OUTERPART\LOADHJ.ico
_END
//如是正常启动,就创建自启动快捷方式,这些快捷方式将在加载桌面后被运行。
//如是由最小配置模式加载外置,就直接运行相关内容。
FIND $%Mini%=Yes,CALL Load2!CALL Load1
修改winpe.ini部分如下:
//判断是否从最小模式启动后加载外置并将判断结果保存在Mini变量中。
//FIND Explorer.EXE,ENVI Mini=Yes!ENVI Mini=No
//如果是从最小模式启动,则加载LOGO,否则加载过程中显示的文字会贴在任务栏中。
FIND $%MinMode%=Yes,TEAM LOGO %CurDir%\PE_OUTERPART\桌面背景\PELOGO.JPG|WAIT 1250
//......
//正常启动加载外置时执行。
_SUB Load2
//将常用文档与对应外置程序建立关联。主要是进行注册表操作。
EXEC @%CurDir%\REGDOC.CMD
//为外置程序创建开始菜单的快捷方式。
LOAD %CurDir%\LOADKJ.INI
_END
//由最小配置模式加载外置时执行。
_SUB Load1
//该快捷方式将常用文档与对应外置程序建立关联。主要是进行注册表操作。
LINK %Programs%\启动\注册程序,%WinDir%\SYSTEM32\PECMD.EXE,EXEC @%CurDir%\REGDOC.CMD,%WinDir%\SYSTEM32\SHELL32.DLL#43
//该快捷方式将为外置程序创建开始菜单的快捷方式。
LINK %Programs%\启动\创建快捷方式,%WinDir%\SYSTEM32\PECMD.EXE,LOAD %CurDir%\LOADKJ.INI,%CurDir%\PE_OUTERPART\LOADHJ.ico
_END
//如是最小配置启动,就创建自启动快捷方式,这些快捷方式将在加载桌面后被运行。
//如是由正常配置模式加载外置,就直接运行相关内容。
FIND $%MinMode%=Yes,CALL Load1!CALL Load2
//TEXT 正在载入桌面……
//如果是从最小模式启动,还要清除LOGO和显示的文字。
FIND $%MinMode%=Yes,TEAM LOGO|TEXT
//TEXT 正在载入桌面……
我理解的pecmd.ini里面的最小配置模式和winpe.ini里面的最小配置模式是一个意思,不知道我理解的对不对,请小小强指点。为了保证量产后能够看到外置程序,根据无忧论坛相关资料,先加载explorer.exe,再load winpe.ini还是有积极意义的,这里不考虑u启主控兼容性问题,有些u盘可能即使这样处理了还是不能正常加载外置,那就只有进入最小配置模式手工加载了。
另外,如果不修改explorer.exe的加载顺序,不知道在pecmd.ini中用forx命令能否解决这个问题。没有具体测试过。
LINK %Desktop%\加载外部配置,%SS%\PECMD.EXE,LOAD \WXPE\外置程序\WinPE.INI,Shell32.dll#26
//如果不是加载最小模式,就加载外部配置。
FIND $%MinMode%=Yes,!TEAM TEXT|FORX !\WxPE\外置程序\WinPE.INI,MyIni,1,LOAD %MyIni%
//加载EXPLORER.EXE并对屏幕显示的内容进行清理;
//启动时LOGO画面的渐隐淡出效果就是由此处的LOGO语句形成。TEXT语句用于清除显示的文字。
FIND Explorer.EXE,!TEAM SHEL %WinDir%\EXPLORER.EXE|LOGO|TEXT
另外,由于winvblock0.0.1.8支持grub4dos的直接map,但只支持硬盘img,vhd等格式,光盘iso格式不支持(他们正在研究支持iso格式),应用于pe整体启动时,可能pe内部要做相应调整,否则直接map蓝屏,map --mem正常,为了简单暂时采用winvblock0.0.1.7。
下载地址:
不带网卡驱动54.2M,http://u.115.com/file/f030f6ce80
带网卡驱动76.7M,http://u.115.com/file/f03f678f1e
[ 本帖最后由 liuzhaoyzz 于 2011-1-22 08:17 编辑 ] |
|