|
ISO与IMG这两种核心各有特点,改核心的格式时,相应的配置文件也必须动。
下面是自适应的配置文件,用这个文件后,可将我以前的多模式PE任意变更核心的格式:
` 系统修正子过程(如果shell32.dll中未加载请执行)
_SUB Fix_System
` 修正 USB 驱动程序文件路径
ENVI V0=HKLM\System\CurrentControlSet\Services
ENVI V1=System32\Drivers
REGI %V0%\USBHUB\ImagePath=%V1%\USBHUB.SYS
REGI %V0%\USBCCGP\ImagePath=%V1%\USBCCGP.SYS
REGI %V0%\USBEHCI\ImagePath=%V1%\USBEHCI.SYS
REGI %V0%\USBOHCI\ImagePath=%V1%\USBOHCI.SYS
REGI %V0%\USBSTOR\ImagePath=%V1%\USBSTOR.SYS
REGI %V0%\USBUHCI\ImagePath=%V1%\USBUHCI.SYS
REGI %V0%\HIDUSB\ImagePath=%V1%\HIDUSB.SYS
REGI %V0%\MOUCLASS\ImagePath=%V1%\MOUCLASS.SYS
REGI %V0%\MOUHID\ImagePath=%V1%\MOUHID.SYS
REGI %V0%\KBDCLASS\ImagePath=%V1%\KBDCLASS.SYS
REGI %V0%\KBDHID\ImagePath=%V1%\KBDHID.SYS
REGI %V0%\CDROM\ImagePath=%V1%\CDROM.SYS
` 设定系统
ENVI V0=Software\Microsoft\Windows\CurrentVersion
REGI HKLM\%V0%\ShellServiceObjectDelayLoad\PostBootReminder=
REGI HKLM\%V0%\Explorer\FindExtensions\Static\WebSearch\! `清除搜索菜单上的搜索"在 Internet 上"
REGI HKLM\%V0%\Explorer\ControlPanel\NameSpace\{D6277990-4C6A-11CF-8D87-00AA0060F5BF}\! `不显示任务计划
REGI HKLM\%V0%\Explorer\ControlPanel\NameSpace\{7007ACC7-3202-11D1-AAD2-00805FC1270E}\! `不显示网络连接
REGI HKLM\%V0%\Explorer\ControlPanel\NameSpace\{D20EA4E1-3957-11d2-A40B-0C5020524153}\! `不显示字体
REGI HKCU\%V0%\Explorer\HideDesktopIcons\ClassicStartMenu\{450D8FBA-AD25-11D0-98A8-0800361B1103}=#1 `在桌面不显示我的文档
REGI HKCU\%V0%\Policies\Explorer\NoNetConnectDisconnect=#0x1
REGI HKCU\%V0%\Policies\System\NoInternetOpenWith=#0x1
REGI HKCR\lnkfile\IsShortcut `不出快捷方式箭头
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage\!
TEAM ENVI V0|ENVI V1
_END
`注册IMDISK右键
_SUB RegImdRk
REGI HKCR\Drive\shell\ImDiskSaveImage\=保存ImDisk虚拟磁盘
REGI HKCR\Drive\shell\ImDiskSaveImage\command\=rundll32.exe imdisk.cpl,RunDLL_SaveImageFile %L
REGI HKCR\Drive\shell\ImDiskUnmount\=卸载ImDisk虚拟磁盘
REGI HKCR\Drive\shell\ImDiskUnmount\command\=rundll32.exe imdisk.cpl,RunDLL_RemoveDevice %L
REGI HKLM\SOFTWARE\Classes\Ultraiso\shell\ImDiskMountFile\=加载为ImDisk虚拟磁盘
REGI HKLM\SOFTWARE\Classes\Ultraiso\shell\ImDiskMountFile\command\=rundll32.exe imdisk.cpl,RunDLL_MountFile %L
REGI HKLM\SOFTWARE\Classes\Winimage\shell\ImDiskMountFile\=加载为ImDisk虚拟磁盘
REGI HKLM\SOFTWARE\Classes\Winimage\shell\ImDiskMountFile\command\=rundll32.exe imdisk.cpl,RunDLL_MountFile %L
_END
`获取内核路径和类型
_SUB GetImgPath
`输出两个变量:IsImg--内核是IMG文件、ImgPath--内核路径
REGI $HKLM\System\CurrentControlSet\Control\SystemStartOptions,tp
LPOS left=%tp%,=
IFEX $%left%=0,TEAM ENVI tp|ENVI left|EXIT
CALC #left=%left%+1
RPOS right=%tp%,\
`计算映像扩展名
CALC #imgleft=%right%+1
MSTR imgname=%tp%,%imgleft%,0
LPOS imgleft=%imgname%,.
CALC #imgleft=%imgleft%+1
MSTR imgname=%imgname%,%imgleft%,2
FIND $%imgname%=im,ENVI IsImg=1
`计算映像路径
CALC #length=%right%-%left%
MSTR tp=%tp%,%left%,%length%
MSTR first=%tp%,1
FIND $%first%=\,!ENVI tp=\%tp%
ENVI ImgPath=%tp%
TEAM ENVI left|ENVI right|ENVI length|ENVI first|ENVI tp|ENVI imgleft|ENVI imgname
_END
`XPPE中修改注册表和相关文件名以支持 Vista 安装
_SUB INSVISTA
REGI HKLM\SYSTEM\CurrentControlSet\Control\MiniNT\!
EXEC !CMD.EXE /C "REN %WinDir%\SYSTEM32\HALACPI.DLL HAL.DLL"
_END
//配置文件开始
TEXT 正在初始化系统……#0xEE $20
CALL GetImgPath
FIND $%IsImg%=1,!FBWF P40 L84 H192 `非IMG内核开FBWF
ENVI $LOADMODE=-1 `预置装载模式值
ENVI $BootFromCD=-1 `预置是否从光盘启动值
ENVI $BootOS=03 `预置是否为03系统,XP系统只要将此行挂起
TEAM ENVI W=%WinDir%|ENVI WS=%W%\SYSTEM32|ENVI WSD=%WS%\Drivers
`IMG映象方式可删除不再使用的文件
FIND $%IsImg%=1,TEAM FILE %W%\TXTSETUP.SI*|FILE %WS%\NTOSKRNL.EX*|FILE %WS%\WIN32K.SYS|PATH #%WS%\CONFIG|FILE %WS%\*.*_|FILE %WSD%\*.SY_
TEAM PATH %SystemDrive%\TEMP|INIT I|EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U
EXEC =!%WS%\showdrive.exe
`系统修正
FIND $%BootOS%=03,CALL Fix_System
`理顺磁盘盘符(理顺后删除相关文件)
EXEC =!%WinDir%\SYSTEM32\ORDERDRV.CMD
FIND $%IsImg%=1,TEAM FILE %WS%\ORDERDRV.CMD|FILE %WS%\MBRFIX.EXE|FILE %WS%\MOUNTVOL.EXE
`注册热键
HOTK #112,PECMD.EXE `热键:F1
`HOTK #255,PECMD.EXE SHUT E `热键:键盘关机
`HOTK Alt+#0x43,CMD.EXE
`建立基本的快捷方式
LINK %Programs%\附件\记事本,%WS%\NOTEPAD.EXE
LINK %Programs%\附件\命令提示符,%WS%\CMD.EXE
LINK %Programs%\附件\分配可移动盘盘符,%WS%\SHOWDRIVE.EXE,,SHELL32.DLL#8
LINK %Programs%\附件\注册表编辑器,%W%\REGEDIT.EXE
LINK %Programs%\附件\资源管理器,%W%\EXPLORER.EXE,,EXPLORER.EXE,1
LINK %Programs%\重新注册 WimShExt外壳,PECMD.EXE,LOAD %WS%\WimShExt.ini,Shell32.dll#24
LINK %Desktop%\搜索装载PETOOLS到开始菜单,PECMD.EXE,LOAD %WS%\PETOOLS.INI,Shell32.dll#45
LINK %Desktop%\加载外部配置,PECMD.EXE,LOAD \H3PE\WINPE.INI,Shell32.dll#5
LINK %Startup%\输入法指示器,%WS%\internat.exe
`注册WimShExt.DLL
CALL $%WS%\WimShExt.DLL
REGI HKCU\Software\WimTool\AutoMountPath=Y:\WIM
`注册IMDISK右键
CALL RegImdRk
`如果Y盘没有由注册表建立则使用ImDisk建立
IFEX Y:\,!RAMD ImDisk,L4,NTFS,Y:,RAMDisk
`装载外部配置
TEAM LOAD \H3PE\WINPE.INI|WAIT 500
IFEX $%BootFromCD%<0,TEAM RUNS PECMD.EXE LOAD \H3PE\WINPE.INI,加载外部配置|TEXT 没有找到“H3PE\WinPE.ini”,开始搜索本地盘的“PETools”……#0xEE $20|WAIT 500|LOAD %WS%\PETOOLS.INI|FILE %Desktop%\搜索装载PETOOLS到开始菜单.LNK
FIND Explorer.EXE,!TEAM SHEL %WinDir%\EXPLORER.EXE|LOGO|TEXT
`XPPE中修改注册表和相关文件名以支持 Vista 安装
FIND $%BootOS%=03,!CALL INSVISTA
`如果不能给 USB 移动存储设备迅速分配盘符或者关机缓慢,请尝试重启 AudioSrv 服务(对于部分 HD 声卡)
TEAM EXEC =PECMD SERV !AudioSrv|EXEC =PECMD SERV AudioSrv
`杀掉无用进程
TEAM KILL SMSS.EXE|KILL WINLOGON.EXE
`IMG映象方式可删掉 X: 盘可删除文件并开FBWF
FIND $%IsImg%=1,TEAM FILE %WS%\SMSS.EXE|FILE %WS%\WINLOGON.EXE|FBWF P40 L84 H192
TEAM ENVI W=|ENVI WS=|ENVI WSD=|ENVI $BootFromCD=
关键的地方我已经刷成红色了。思路就是先通过注册表值判断是哪种类型的内核->再根据内核的不同在不同的位置加载FBWF、清除不必要的文件。注意:
1、开了FBWF后,从系统盘中删除开FBWF前已经存在的文件是毫无意义的事!(因ISO核心不可写,一般要最先开FBWF,很多ISO内核中删系统启动阶段的文件的语句是多余的。)
2、IMG内核开FBWF后不能再往系统盘挂东西。
3、IMG内核开FBWF前,空间是比较紧张的,因此最好不要在启动阶段三卡全驱动。
[ 本帖最后由 hhh333 于 2009-11-1 15:39 编辑 ] |
|