|
老九的新版pecmd有一个大问题不知是不是BUG
情况是这样的,我的配置是启动时检测Ctrl键,如果按下则出一个模式选择窗口,v3.1.528能够正常出窗口,但改成3.1.615和最新的3.2.618则不行。窗口出不来死机了。但进入系统shell后可以正常调出这个窗口。不知何故?配置文件如下:
`-------------------------------------调用子程序部分-----------------------------------------------------
_SUB LOADWIM `装载外置程序镜像
TEAM TEXT 正在装载%WIMF%程序……#0xEE,$20|WAIT 500
ENVI CurOPDir=%OPDrv%\%WIMF%
PATH %CurOPDir%
MOUN %WimDir%\%WIMF%.WIM,%CurOPDir%,1,%CacheDir%
PATH @%CurOPDir%
FIND MEM>120,IFEX 桌面背景\PELOGO.JPG,TEAM LOGO 桌面背景\PELOGO.JPG|WAIT 500
EXEC !REGDOC.CMD `运行各外置的初始安装文件
LOAD REGDOC.INI `运行各外置的初始配置文件
EXEC !CMD /C "ECHO MOUN ,%CurOPDir%,0 >>%SYSTEMROOT%\UNMOUN.INI" `生成卸载文件
_END
_SUB AutoSetLoadMode `据内存容量自动设定装载模式
ENVI $LOADMODE=0
FIND MEM>120,ENVI $LOADMODE=1
FIND MEM>250,ENVI $LOADMODE=2
FIND MEM>500,ENVI $LOADMODE=3
FIND MEM>750,ENVI $LOADMODE=4
FIND MEM>1000,ENVI $LOADMODE=5
_END
_SUB HandsSetLoadMode,W360H310,手工选定外置程序装载模式
ENVI TT=30 `TT为窗口停留时间
ENVI V0=0--纯系统
ENVI V1=1--装载基本工具
ENVI V2=2--装载硬件驱动
ENVI V3=3--装载IE等网络工具
ENVI V4=4--装载办公游戏等高级应用系统
ENVI V5=5--装载以上所有程序+启动时自动安装驱动
GROU Group1,L12T3W330H190
RADI RadioButton0,L32T14W250H20,%V0%,,1
RADI RadioButton1,L32T44W250H20,%V1%,,0
RADI RadioButton2,L32T74W250H20,%V2%,,0
RADI RadioButton3,L32T104W250H20,%V3%,,0
RADI RadioButton4,L32T134W250H20,%V4%,,0
RADI RadioButton5,L32T164W250H20,%V5%,,0
TEAM ENVI V0=|ENVI V1=|ENVI V2=|ENVI V3=|ENVI V4=|ENVI V5=
LABE Label1,L20T200W320H40,说明:选择后面的模式自动包括前面的程序;退出则由程序根据内存容量自动选择装载模式。
ITEM Button1,L220T240W88H24,确定,CALL CheckMode
TIME Timer1,1000,CALL CancleButt
_END
_SUB CancleButt
CALC Result=%TT%-1
ENVI TT=%Result%
ENVI @Button1=确定(%TT%秒)
IFEX $%TT%<1,TEAM ENVI @Timer1=0|KILL \%HandsSetLoadMode%
_END
_SUB CheckMode
ENVI M1=手动选择模式
IFEX $%RadioButton0.Check%=1,ENVI $LOADMODE=0
IFEX $%RadioButton1.Check%=1,ENVI $LOADMODE=1
IFEX $%RadioButton2.Check%=1,ENVI $LOADMODE=2
IFEX $%RadioButton3.Check%=1,ENVI $LOADMODE=3
IFEX $%RadioButton4.Check%=1,ENVI $LOADMODE=4
IFEX $%RadioButton5.Check%=1,ENVI $LOADMODE=5
KILL \%HandsSetLoadMode%
_END
_SUB IFSetPageFile `询问是否设置虚拟内存
TEXT 是否设置虚拟内存?
MESS 您的计算机物理内存较少,某些外置程序的运行可能需要用到\n虚拟内存。设置了虚拟内存,有助于提高系统的速度和稳定性;\n如果您需要保护并恢复硬盘分区数据,可跳过虚拟内存的设置。\n \n您确定要设置虚拟内存吗?(建议设置,20 秒后默认选择否)@设置虚拟内存 #YN *20000 $NO
FIND $%YESNO%=YES,Call SetPageDrv!TEXT 没有建立虚拟内存……
WAIT 500
_END
_SUB SetPageDrv `设定虚拟内存存放分区
TEXT 正在设定虚拟内存……
BROW PageDrv,*,请选择虚拟内存文件存放的分区,取消则自动选择D:分区
FIND $%PageDrv%=,ENVI PageDrv=D:\
TEXT 正在设定虚拟内存到%PageDrv%盘……
PAGE %PageDrv%%PF% 256
ENVI PageDrv=
_END
_SUB FirstLoad
TEAM TEXT 3秒内按住Ctrl键可以手动选择装载模式,否则由程序自动选择...... #0xEE $20|WAIT 3000
FIND KEY=17,ENVI M1=手动选择的模式|CALL @HandsSetLoadMode
_END
`--------------------------------------配置文件主程序部分------------------------------------------------
`关于两个启动模式变量的说明
`LOADMODE--定义装载模式:0-纯系统不装外置;1-装MMC外置;2-装载DRV驱动;3-装扩展APP外置;
` 4-办公游戏多媒体等高级应用;5-全自动模式
`DRV_DIRECT_RUN--启动时显、声、网直接驱动,直接驱动设为YES否则设为NO
`定义变量初始值
ENVI WimDir=%CurDir% `保存配置文件所在目录
ENVI $LOADMODE=-1
ENVI $BootFromCD=NO `是否为从cdrom启动(PECMD.INI文件中会以这个变量来判定是否调用本ini文件)
ENVI M1=自动检测模式
IFEX %CurDrv%\SETUP\PESETUP.EXE,ENVI $BootFromCD=YES `通过检测pe安装文件确定是否为从cdrom启动
`---------------------------手动或自动选择装载模式------------------------------
IFEX %SYSTEMROOT%\UNMOUN.INI,CALL @HandsSetLoadMode!CALL FirstLoad `通过检测UNMOUN.INI文件来决定是否为初次装载。
IFEX $%LOADMODE%<0,CALL AutoSetLoadMode
IFEX $%LOADMODE%>4,ENVI $DRV_DIRECT_RUN=YES
`---------------------------预置装载模式(要使用请将以上三行挂起,下行取消挂起)---------------------------
//TEAM ENVI M1=WinPE.ini文件中预置的模式|ENVI $LOADMODE=4|ENVI $DRV_DIRECT_RUN=NO
TEAM TEXT|TEXT 系统将按%M1%:%LOADMODE%启动....... #0xEE $20|WAIT 800
//NUMK 0 `对于笔记本键盘,可以不挂起,以关闭数字键
USER 老九 WinPE,老毛桃、hhh333修改版
`清理掉上次启动 PE 或 Windows 时留下的虚拟内存页面文件
ENVI PF=Pagefile.sys
TEAM FILE C:\%PF%|FILE D:\%PF%|FILE E:\%PF%|FILE F:\%PF%|FILE G:\%PF%|FILE H:\%PF%|FILE I:\%PF%|FILE J:\%PF%|FILE K:\%PF%|FILE L:\%PF%|FILE M:\%PF%|FILE N:\%PF%|FILE O:\%PF%|FILE P:\%PF%|FILE Q:\%PF%
`物理内存低于 256MB 时询问是否设定虚拟内存
`设PFIsSet.LOG文件的作用是后续程序可以检测此文件以判断是否设置了虚拟内存,以便程序无阻塞运行;还可以在再次装载时不用再设置
IFEX %Temp%\PFIsSet.LOG,!FIND MEM<256,CALL IFSetPageFile
EXEC =!CMD.EXE /C "FOR %I IN (C D E F G H I J K L M N O P Q) DO IF EXIST %I:\PAGEFILE.SYS ECHO PageFile in %I>%Temp%\PFIsSet.LOG"
`安装光盘启动在桌面建安装快捷方式
LINK %Desktop%\安装 WinPE 到硬盘,%WimDir%\..\SETUP\PESetup.EXE `建立安装 WinPE 的快捷方式
`根据LOADMODE的值装载外置及驱动
TEAM FILE %Desktop%\加载外部配置.*|FILE %SYSTEMROOT%\UNMOUN.INI
IFEX $%LOADMODE%>0,TEAM ENVI WIMF=MMC|IFEX %WimDir%\%WIMF%.WIM,TEAM ENVI CacheDir=%TEMP%|CALL LOADWIM
IFEX $%LOADMODE%>1,TEAM ENVI WIMF=DRV|IFEX %WimDir%\%WIMF%.WIM,TEAM ENVI CacheDir=|CALL LOADWIM
IFEX $%LOADMODE%>2,TEAM ENVI WIMF=APP|IFEX %WimDir%\%WIMF%.WIM,TEAM ENVI CacheDir=%TEMP%|CALL LOADWIM
IFEX $%LOADMODE%>3,TEAM ENVI WIMF=ADV|IFEX %WimDir%\%WIMF%.WIM,TEAM ENVI CacheDir=|CALL LOADWIM
IFEX $%LOADMODE%>0,LINK %Desktop%\卸载外部配置,PECMD.EXE,LOAD %WimDir%\UnloadOP.INI,Shell32.dll#26!LINK %Desktop%\加载外部配置,PECMD.EXE,LOAD %WimDir%\Winpe.INI,Shell32.dll#5
WALL 桌面背景\PEWallPaper.JPG
`删除环境变量进桌面
FIND Explorer.EXE,!TEAM TEXT 正在载入桌面……|SHEL %WinDir%\EXPLORER.EXE
TEAM TEXT|LOGO|WAIT 500
TEAM ENVI $LOADMODE=|ENVI $DRV_DIRECT_RUN=|ENVI CurOPDir=|ENVI WIMF=|ENVI CacheDir=|ENVI M1=|ENVI TT=
//配置文 |
|