无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3214|回复: 1
打印 上一主题 下一主题

MBROSTool改造Win8 RAMOS,自动加载分区

[复制链接]
跳转到指定楼层
1#
发表于 2018-3-13 18:38:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 2010xu32105 于 2018-3-15 06:14 编辑

///// 此调试代码 直接用户区的WG.81.PECMD.DBG.INI WG.81.PECMD.DBG.NTR 来升级系统,不用老修改WIM

FIND $[ %&CurDrv%=%SystemDrive% & '%~1'='' ],!! FORX \WG.81.PECMD.DBG.INI,&&F,1, TEAM LOAD "%&F%" %* | EXIT FILE
FIND $[ %&CurDrv%<>%SystemDrive% & '%~1'='' ],
{*  TEAM SET ThisFile=%SystemRoot%\System32\PECMD.INI| FILE %&CurFile%=>%&ThisFile%
    IFEX %&CurDrv%\WG.81.PECMD.DBG.PART.TXT, SET &dbgpart=1
    IFEX [ .\WG.81.PECMD.DBG.NTR & '%~1'<>'2' ],
    {*  TEAM IFEX up.81.LOG, LOGS * up.81.LOG| DATE &&T| SET &=%&T%
        FILE %SystemRoot%\System32\PECMD001.tmp.EXE
        FILE %SystemRoot%\System32\PECMD.EXE>>%SystemRoot%\System32\PECMD001.tmp.EXE
        FILE .\WG.81.PECMD.DBG.NTR=>%SystemRoot%\System32\PECMD.EXE
        EXEC -nfb =%SystemRoot%\System32\PECMD.EXE TEAM SET &dbgpart=%&dbgpart%|LOAD %&ThisFile%  --up
        EXIT FILE
    }
}
/////////////////////// UDM 设置区  (此部分代码由 mdyblog 大师帮助编写) ///////////////////////
_SUB DoOUTCFG
    ENVI^  EnviBroad=0                                              `系统加速
    SET &MainHd=%MainHd%
    SET &MainId=%MainId%
    SET &DocId=%DocId%
    CALC -err=-1  #&MainHd=(%&MainHd%) + 0
    CALC -err=1   #&MainId=(%&MainId%) + 0
    CALC -err=5   #&DocId=(%&DocId%) + 0
    IFEX $%&MainHd%>=0,                                             `快速恢复UDm
    {   //UMOUNT_WIM
        imdisk_unmount                                              `清除旧的imdisk
        CheckMain &&bDresh1
        IFEX $%&bDresh1%>0,
        {*  IFEX %MyDrv0%, MOUN  -udm -u   ""   %MyDrv0%
            MOUN  -udm    -udmid: %&MainId%  \\.\PhysicalDrive%&MainHd% %MyDrv0%    `重新加载核心主盘
        }
        CheckDoc &&bDresh2
        IFEX $%&bDresh2%>0,
        {*  FIND $%ImdDocDrv%<>,!! IFEX %ImdDocDrv%, MOUN  -udm -u   ""   %ImdDocDrv%
            FIND $%ImdDocDrv%<>,!! MOUN  -udm -w -mw-   -udmid: %&DocId%  \\.\PhysicalDrive%&MainHd% %ImdDocDrv% `重新可写加载DOC盘
        }
    }
    REGI $HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop_Bak,&&Dsk
    FIND $%&Dsk%<>, REGI HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop=%&Dsk%
    FIND $%&Dsk%<>, REGI HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop=%&Dsk%
    FIND $%&Dsk%<>, ENVI $Desktop=%&Dsk%

_END
_SUB FORMX // DriveType %MyDRV%
    SET &Drv=%~2
    ENVI DocDrv=
    ENVI MainHd=-1
    ENVI MainId=1                                                   `设置UDm管理主分区号码
    ENVI DocId=5                                                    `设置UDm管理DOC分区号码
    ENVI ImdDocDrv=
    FindUDm5 %&Drv%  DocDrv  MainHd   ImdDocDrv  MainId
    FIND $%DocDrv%<>, TEAM ENVI MyDRV=%DocDrv%  //UDM或普通分区作为DOC盘
    SET &DriveType=DRIVE_FIXED
    IFEX $%MainHd%>=0,
    {*  PART list disk %MainHd%,&&V                                 `列出UDm5的磁盘分区号码
        MSTR  &&md,&&bus,&&FR=<7><9><11>%&V%                        `截取启动介质的MBR类别
        `判断启动介质是 F 型移动磁盘
        IFEX $[ 'F'='%&FR%' & %&bus%=7 ], TEAM ENVI &DriveType=DRIVE_USBDISK
        `判断启动介质是 R 型移动磁盘     
        IFEX $[ 'R'='%&FR%' & %&bus%=7 ], TEAM ENVI &DriveType=DRIVE_USBFLASH
        `检测第二可读写 UDm (存放 Documents 目录) 盘的盘符并输出至 SetDRV.INI
        FIND $%DocDrv%=,  ENVI &DriveType=%&DriveType%.RO           `为保险,只读不解除   
    }!
    {   FORM &DriveType=%MyDRV%
    }
    `判断启动介质是本地硬盘
    TEAM ENVI-ret %~1=%&DriveType%|WRIT %SystemRoot%\SetDRV.INI,$+0,ENVI $DriveType=%&DriveType%  //(1)DriveType
    FIND $%DocDrv%<>, WRIT %SystemRoot%\SetDRV.INI,$+0,ENVI $DocDrv=%DocDrv%  //(2)DocDrv
    ENVI-ret %~3=%&ImdDocDrv%
    TEAM ENVI $DocId=%DocId%| ENVI $DocDrv=%DocDrv%| ENVI $ImdDocDrv=%ImdDocDrv%
    TEAM ENVI $MyDRV=%MyDRV%| ENVI $MainHd=%MainHd%| ENVI $MainId=%MainId%  `写入系统环境
   
--MESS FORMX结果:启动/DOC介质为[%&DriveType%]主/DOC盘符为[%MyDRV%]主/DOC磁盘号码为[%MainHd%]主磁区号码为[%MainId%]\nDOC子盘盘符为[%DocDrv%]ImdDocDrv为[%ImdDocDrv%]  `去除--,可用此句调试
_END
_SUB FindUDmDrvCD  // DocName  &MainHd  DocId   &DocDrv  &ImdDocDrv ImdDocId %MainDrv%
    SET &mhd=-1
    SET &DocName=%~1
    SET &DocId=-1
    FORM  &&tp=%~7
    SET &partent=0
    PART list disk,&&dsks
    FIND $%tp%=DRIVE_CDROMUSB, part -cdrom list parent  %~7, &partent
    FIND $%tp%<>DRIVE_CDROMUSB,    `模拟量产
    {   moun -udm findudm -norm -ret: &&V  %~7
        @TEAM MSTR &&hd=<1>%&V%| CALC -err=-2 &hd=( %&hd% ) + 0
        IFEX $%&hd%>=0, part list parent  %&hd%, &partent
    }
    CALC -base=16 &partent=%partent%
    FORX * 1,&&Vdummy,                                                    `如果允许 其它U盘改为: FORX * 1 2,&&Vx,
    {
        SET &iSel=-1
        FORX * %&dsks%,&&hd,
        {*
            PART list disk %&hd%,&&V
            MSTR &&bus=<9>%&V%
            IFEX $%&bus%<>7, EXIT -  `USB
            IFEX $%&partent%<>0,!!  TEAM part list parent  %&hd%, &&parenti|  IFEX $%&partent%<>%&parenti%, EXIT -
            moun -udm listudm -udfs -ret: &&UDmList    \\.\PhysicalDrive%&hd%
            FORX *NL &UDmList,&&Vx,
            {*
                MSTR &&utp,&&nm,&&Drv,&&id=<4><~6><~7><10>%&Vx%
                MSTR &&nm5=5,0,%nm%  `MBS_WGDOC  MBS2WGDOC
                FIND $%&nm5%=%&DocName%, TEAM SET iSel=100|SET mhd=%&hd%|  SET DocId=%&id%| SET DocDrv=%&Drv%| SET ImdDocDrv=%Drv%|EXIT
                IFEX $[ '%&Drv%'<>'' & %utp%>=0x20000 & %utp%<=0x2FFFF ], `过滤,取普通分区
                {   IFEX $%iSel%<20, TEAM SET iSel=20|SET DocDrv=%&Drv%   `有盘符
                    FDRV *vol  &&Vol=%&Drv%
                    MSTR &&nm5=5,0,%Vol%  //MBS_WGDOC  MBS2WGDOC WGDOC
                    FIND $[ %&nm5%=%&DocName% | %&Vol%=%&DocName% ], IFEX $%iSel%<30, TEAM SET iSel=30|SET DocDrv=%&Drv% //有盘符
                }
            }
        }
        FIND $%&DocDrv%<>, EXIT  `找到了
        SET partent=0            `下一轮不判断
    }
    ENVI-ret %~2=%&mhd%   
    ENVI-ret %~3=%&DocId%   
    ENVI-ret %~4=%&DocDrv%
    ENVI-ret %~5=%&ImdDocDrv%
    ENVI-ret %~6=%&DocId%
_END
_SUB FindUDmDrv  `查找 UDm 盘。 参数: hd udmId  DrvName ImdName ImdDocId
    SET &hd=%~1
    SET &UdmId=%~2
    SET &DocDrv=
    SET &ImdDocDrv=
    SET &ImdDocId=-1
    moun -udm listudm -udfs  -ret: &&UDmList    \\.\PhysicalDrive%&hd%
    FORX *NL &UDmList,&&Vx,
    {*  MSTR  &&start,&&len,&&utp,&&Drv,&&Id=<2><3><4><~7><10>%&Vx%
        IFEX $%&UdmId%=%&Id%,
        {   TEAM SET DocDrv=%&Drv%| SET ImdDocDrv=%&Drv%| SET ImdDocId=%&Id%
            FIND $%&DocDrv%=,                                                 `支持可见区
            {   PART list part %&hd%,&&prts
                FORX * %&prts%,&&prt,
                {*  PART list part %&hd%:%prt%,&&V
                    MSTR  &&s,&&n,&&Drv3=<4><5><8>%&V%
                    IFEX $[ %&s%=%&start%s & %&n%=%len%s ], TEAM SET DocDrv=%&Drv3%| SET ImdDocId=-1| EXIT
                }
            }
            EXIT
        }
    }
    ENVI-ret %~3=%&DocDrv%
    ENVI-ret %~4=%&ImdDocDrv%
    ENVI-ret %~5=%&ImdDocId%
_END
`根据主盘的盘符找到 Udm5,并“可写”重新加载,返回 DOC盘符和宿主磁盘号码。
_SUB FindUDm5  // 参数: MainDrv DocDrvName HdName ImdDocDrvName MainId
    SET &MainHd=-1
    SET &MainId=1
    SET &DocDrv=
    SET &ImdDocDrv=
    SET &ImdDocId=-1
    FORM  &&tp=%~1
    IFEX %~1\我要模拟量产.DBG.TXT, SET tp=DRIVE_CDROMUSB  //调试:模拟量产
    FIND $%&tp%=DRIVE_CDROMUSB,  //量产
    {* SET MainId=0
        FindUDmDrvCD  "WGDOC"  &MainHd  DocId   &DocDrv  &ImdDocDrv &ImdDocId %~1
    }!
    {*  @TEAM MOUN -udm findudm  -ret: &&V "%~1"|  MSTR &MainHd,&MainId=<1*>%&V%
        IFEX $[ %&MainHd%>=0 & %&MainId%<>5 ], FindUDmDrv   %&MainHd%  %DocId%   &DocDrv  &ImdDocDrv &ImdDocId
    }
    IFEX $[ %&MainHd%>=0 & %&ImdDocId%>0 ],
    {*  FIND $%&DocDrv%<>, MOUN  -udm -u   ""   %&DocDrv%
        FIND $%&DocDrv%=, TEAM FDRV *idlec &&drvs=*:| MSTR &DocDrv=<1>%&drvs%| SET ImdDocDrv=%&DocDrv%
        FIND $%&DocDrv%<>, MOUN -udm -w -mw- -udmid: %DocId% \\.\PhysicalDrive%&MainHd% %&DocDrv%  `重新可写加载
    }
    ENVI-ret %~2=%&DocDrv%
    ENVI-ret %~3=%&MainHd%
    ENVI-ret %~4=%&ImdDocDrv%
    ENVI-ret %~5=%&MainId%
_END
////////////////////////////////// UDm 环境关机杀手 //////////////////////////////////
_SUB OnShutdownTask
    Call OnShutdownTaskW
_END
_SUB OnShutdownTaskW,W240H120,UDm后台进程
    ENVI @this.Visable=0      `将前台窗口隐藏
    ENVI-env  &&ImdDocDrv=%ImdDocDrv%
    ENVI-env  &&MainHd=%MainHd%
    ENVI^ FORCELOCAL=1
    SET ::WM_QUERYENDSESSION=0x0011
    SET ::WM_ENDSESSION=0x0016
    ENVI @this.MSG=%&WM_QUERYENDSESSION%::&&wp,&&lp,CALL imdisk_unmountx %&wp% %&lp%
    ENVI @this.MSG=%&WM_ENDSESSION%::&&wp,&&lp,CALL imdisk_unmountx %&wp% %&lp%
_END
_SUB imdisk_unmountx          `卸载所有imdisk虚拟盘,以免不能关机。
    SET &wp=%1
    SET &lp=%2
    IFEX $%&lp%<>0, EXIT
    {*  CheckDoc &&bDresh
        IFEX $%&bDresh%<=0, EXIT -  `不执行
        REGI $HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop_Bak,&&Dsk1
        REGI $HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop,&&Dsk
        FIND $%&Dsk1%=, REGI $HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop_Bak=%&Dsk%
        REGI HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop=X:\Users\Administrator\Desktop
        REGI HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop=X:\Users\Administrator\Desktop
        TEAM KILL Explorer|KILL Explorer| KILL Explorer
    }
    imdisk_unmount
_END
_SUB CheckMain  //iPos
    ENVI-ret %~1=-1
    IFEX $%MainId%<1, EXIT
    RAMD Imdisk*&&Vi -l -m %MyDRV%
    SED &&IPOS=?,Proxy Virtual Disk,,%&Vi%
    ENVI-ret %~1=%&iPOS%
_END
_SUB CheckDoc  //iPos
    ENVI-ret %~1=-1
    IFEX $%ImdDocDrv%=, EXIT
    RAMD Imdisk*&&Vi -l -m %ImdDocDrv%
    SED &&IPOS=?,Proxy Virtual Disk,,%&Vi%
    ENVI-ret %~1=%&iPOS%
_END
_SUB imdisk_unmount          `卸载所有imdisk虚拟盘,以免不能关机。
    SET &V2=
    RAMD Imdisk*&&V -l -n
    FORX * %&V%,&&v1,
    {   RAMD Imdisk*&&Vi -l -u %&v1%
        SED &&IPOS=?,Proxy Virtual Disk,,%&Vi%
        IFEX $%&iPOS%>0, SET V2=%&v1% %V2%
    }
    FORX * %&V2%,&&v1, RAMD Imdisk*&&Vi -d -u %&v1%
    FORX * %&V2%,&&v1, RAMD Imdisk*&&Vi -D -u %&v1%
    FORX * %&V2%,&&v1, RAMD Imdisk*&&Vi -R -u %&v1%
_END
//////////////////////////////////// 子程序区 //////////////////////////////////////////
_SUB RegWCS                                                        `关联注册 WCS 脚本文件
ENVI PECMD=PECMD.EXE
IFEX %WS%\PECMD.NTR,ENVI PECMD=PECMD.NTR
ENVI EDIT=NOTEPAD
REGI HKCR\.ntr\=exefile
REGI HKCR\.nte\=exefile
REGI HKCR\.ntx\=exefile
REGI HKCR\.wcs\=wcsfile
REGI HKCR\.wce\=wcsfile
REGI HKCR\.wcx\=wcsfile
REGI HKCR\wcsfile\=WCS 脚本文件
REGI HKCR\wcsfile\DefaultIcon\=%SystemRoot%\SYSTEM32\%PECMD%,0
REGI HKCR\wcsfile\shell\open\command\=%PECMD% LOAD %L
REGI HKCR\wcsfile\shell\Edit\command\=%EDIT% %L
REGI HKCR\.wcz\=wczfile
REGI HKCR\wczfile\=WCS 脚本文件
REGI HKCR\wczfile\DefaultIcon\=%SystemRoot%\SYSTEM32\%PECMD%,0
REGI HKCR\wczfile\shell\open\command\=%PECMD% LOAD %L
REGI HKCR\inifile\shell\PECMD\=PECMD 运行
REGI HKCR\inifile\shell\PECMD\command\=%PECMD% LOAD %L
REGI HKCR\inifile\shell\PECMDEDIT\=PECMD 编辑
REGI HKCR\inifile\shell\PECMDEDIT\command\=%EDIT% %L
REGI "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATHEXT"=.COM;.EXE;.NTR;.NTE;.NTX;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.WCS;.WCE;.WCX;.WCZ
_END
`注册IMDISK右键
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 HKCR\Ultraiso\shell\ImDiskMountFile\=加载为ImDisk虚拟磁盘
REGI HKCR\Ultraiso\shell\ImDiskMountFile\command\=rundll32.exe imdisk.cpl,RunDLL_MountFile %L
REGI HKCR\Winimage\shell\ImDiskMountFile\=加载为ImDisk虚拟磁盘
REGI HKCR\Winimage\shell\ImDiskMountFile\command\=rundll32.exe imdisk.cpl,RunDLL_MountFile %L
_SUB ADD_HOTK                                                                       `注册热键:
HOTK #112,PECMD.EXE HELP                                                            `PECMD 帮助热键   (按 F1 键)
_END

//////////////////////////////////// 启动设置区 ////////////////////////////////////
_SUB ADD_MAIN        `第一次运行
TIPS 正在准备 Windows 8 32 位RamOS,请稍侯 ...,,1,%WS%\W.ICO
TEAM ENVI W=%SystemRoot%|ENVI WS=%W%\SYSTEM32
EXEC *%WS%\AUTONUMLOCK.EXE                                        `自动开、关小数字键盘

//SET dbgpart=1    ////调试盘符开关,调试时去除前面 //

@IFEX $%&dbgpart%=1, @TEAM PART -gui -report: &&V| SET &=分区:[%&V%]
@TEAM PART -cdrom list drv C:,&&V| MSTR &&cdn=<1>%&V%| CALC -err=-1  #&cdn=(%&cdn%)+0| IFEX $%&cdn%>=0, SUBJ *- C:   `如果 C: 是 CDROM 就删除掉,有一定危险哦

////////////// 先寻找并固定 C:盘 , \bootmgr优先,其次\BOOT.INI //////////////
@TEAM SET &_SysPt=| SET &DrvS=C:| SET &Drv1=
FORX * bootmgr BOOT.INI,&&Tagf,
{   FORX  \%&Tagf%,&Drv1,0,
    {   FDRV &Drv1=%&Drv1%
        @TEAM PART -phy# LIST drv %&Drv1%,&V1| MSTR &Lid1,&&id1,&&hd1=<1><8><10>%&V1%
        IFEX $[ %&id1%>=1 & %&id1%<=4 & '%&Drv1%'<>'%&DrvS%' ], @TEAM SUBJ *- %&Drv1%| SUBJ *- %&DrvS%| SHOW * %&hd1%#%&id1%,%&DrvS%
@IFEX $[ %&id1%>=1 & %&id1%<=4 ],  @IFEX $%&dbgpart%=1, @TEAM PART -gui -report: &&V| SET &=分区:[%&V%]
        IFEX $[ %&id1%>=1 & %&id1%<=4 ], TEAM SET _SysPt=-skippt:%&hd1%:%&Lid1%| EXIT   `不要再调整了
    }
    FIND $%_SysPt%<>, EXIT
}
FIND $[ '%_SysPt%'<>'' & '%&Drv1%'<>'%&DrvS%' ], DISK -check %&_SysPt%  ,,,2,,2         `调整固定 C: 盘之后重排一次
@FIND $[ '%_SysPt%'<>'' & '%&Drv1%'<>'%&DrvS%' ], @IFEX $%&dbgpart%=1, @TEAM PART -gui -report: &&V| SET &=分区:[%&V%]
//////////////////////// C:盘 设置完毕 ////////////////////////////////
IFEX $%&cdn%>=0,!! TEAM FDRV *idlec &&Drvs=*:| MSTR &&drv=<1>%&Drvs%| FIND $%&drv%<>, SUBJ * %&drv%,\\.\CDROM%&cdn%
@IFEX $%&cdn%>=0,!! @IFEX $%&dbgpart%=1, @TEAM PART -gui -report: &&V| SET &=分区:[%&V%]
TEAM CALL SetDISK_Y| CALL ADD_UDm                                 `启动扩容 "Y" 盘程序及加载 UDM 深度隐藏分区

TEAM INIT U,3000|CALL RegWCS                                      `关联 WCS 脚本,开启U盘加载服务,监视磁盘/盘符变化
EXEC *%WS%\CTFMON.EXE                                             `开启输入法指示器

_END
_SUB ADD_UDm  ///加载 UDM 深度隐藏分区,支持 UDm U+ UD
@IFEX $%&dbgpart%=1, @TEAM PART -gui -report: &&V| SET &=分区:[%&V%]
TEAM DATE &::dbgt2  uptime| CALC &::dbgtu2=(%&dbgt2% - %&dbgt0%)/1000#3
-- TIPS 正在加载UDM分区(%dbgtu2%),请稍侯 ...,60000,1,@L240T40
MOUN -udm  -ret: &&UDMRET -findboot: &&btRet -mall -mhide -nbrd -u+ -udfs -udimg: udext.img -checkfile: win8.INI * C-
TEAM DATE &::dbgt3  uptime| CALC &::dbgtu3=(%&dbgt3% - %&dbgt0%)/1000#3| CALC &::dbgtu32=(%&dbgt3% - %&dbgt2%)/1000#3
-- TIPS UDM分区加载完毕,(%dbgtu2%)(%dbgtu3%) 耗用(%dbgtu32%)秒 ...,60000,1,@L240T40
MSTR &&hbd=<1>%&btRet%
FIND $%&hbd%<>-1, MSTR &ExtDrv=<1>%&UDMRET%
---------DEBUG----------
MOUN -udm  findboot -ret: &&btRet0
FIND $%&hbd%=-1, SET &bext=不是!SET &bext=是
--btRet0[%btRet0%]
--btRet[%&btRet%] UDMRET:[%&UDMRET%]
------------------------------------------
----%&bext%有效精确启动
------------------------------------------
@IFEX $%&dbgpart%=1, @TEAM PART -gui -report: &&V| SET &=分区:[%&V%]
_END
//////////////////////////////////// 主程序区 ///////////////////////////////////////////
IFEX C:,LOGS * C:\PECMD_81.LOG! LOGS * D:\PECMD_81.LOG            `记录启动过程
-----CurFile:[%&CurFile%]
FIND $%&ThisFile%=, SET &ThisFile=%&CurFile%
@DATE &&T
-----&CurFile:[%&CurFile%] [%&T%] &ThisFile[%&ThisFile%]
IFEX %&CurDrv%\WG.81.PECMD.DBG.PART.TXT, SET &dbgpart=1
SET &ExtDrv=  //精确启动盘符
TEAM DATE &::dbgt0  uptime
ENVI OnlyOne0=123456789只能一次检测
ENVI OnlyOne=
REGI $HKCU\SOFTWARE\PELONGN\OnlyOne,OnlyOne                       `从注册表读取运行标志
FIND $%OnlyOne%=%OnlyOne0%, ENVI OnlyOne=1! ENVI OnlyOne=0        `如标志为零表示是首次运行
SET &MyApp=%&MyName%
TEAM SET &MyApp=%&MyName%
EXEC *"%&MyApp%" LOAD "%&ThisFile%"*OnShutdownTask                `启动关机杀手
IFEX %SystemRoot%\SetDRV.INI,CALL SetOUTCFG!CALL ADD_MAIN         `如果 X:\Windows 目录有 SetDRV.INI,就确定是注销后再次运行
REGI $HKCU\SOFTWARE\PELONGN\OnlyOne=%OnlyOne0%                    `设置一次性运行标志,避免下次重复执行

LOAD %ProgramFiles%\PE.INI
EXEC %SystemRoot%\System32\PE.CMD
LINK %Desktop%\启用开始菜单,%ProgramFiles%\StartIsBack\StartSetup.CMD,,Shell32.dll#39

`显示隐藏文件,显示扩展名
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden=#1
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\SuperHidden=#0
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden=#1
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt=#0
EXEC *CMD.EXE /C "%SystemRoot%\System32\madplay.exe -Q %SystemRoot%\Media\Startup.wav" `播放电脑启动音效
FIND $%OnlyOne%=0,TEAM KILL EXPLORER.EXE|EXEC %SystemRoot%\EXPLORER.EXE
FIND $%OnlyOne%=1,
{
    TEAM TEXT 系统注销完毕,重新启动中……#0x00FFFF L350 $25
    TEAM WAIT 500|KILL EXPLORER.EXE|EXEC %SystemRoot%\EXPLORER.EXE
}
`运行 "MAIN" 命令,接管 Ctrl+Alt+Del 组合键,并创建新进程执行 LOAD 功能
IFEX  %SystemRoot%\SYSTEM32\DummyPECMD.INI,! PUTF  -dd -len=0  %SystemRoot%\SYSTEM32\DummyPECMD.INI,0,zero
FIND  --pid*@.   &&VS,%MyNAME0%
FORX *NL &VS,&&VI,
{   MSTR*   &&PID,&&cmd=<1><7>%&VI%
    FIND $%&cmd%=PECMD  MAIN,  KILL *%&pid%
}
EXEC "%&MyName%" MAIN %SystemRoot%\SYSTEM32\DummyPECMD.INI
FIND $%OnlyOne%=1,TEAM WAIT 3000 | LOGO
FIND $%OnlyOne%=1,TEAM KILL EXPLORER.EXE|WAIT 2| EXEC %SystemRoot%\EXPLORER.EXE
FIND $%OnlyOne%=0,! FIND CTFMON.EXE,! %SystemRoot%\SYSTEM32\CTFMON.EXE                `注销后重新安装输入法指示器
TEAM DATE &::dbgt3  uptime| CALC &::dbgtu3=(%&dbgt3% - %&dbgt0%)/1000#3| CALC &::dbgtu32=(%&dbgt3% - %&dbgt2%)/1000#3
TIPS 系统启动完毕,(%dbgtu2%)(%dbgtu3%)共用时间(%dbgtu32%)秒 ...,80000,1,%WS%\W.ICO
TEAM TEXT| TIPS| ENVI W=| ENVI WS=
/////////////////////////////////////////////////////////////////////////////////////////
LOGS                                                                                  `结束并搬移启动记录
IFEX C:\PECMD_81.LOG,FILE C:\PECMD_81.LOG->%SystemRoot%!IFEX D:\PECMD_81.LOG,FILE D:\PECMD_81.LOG->%SystemRoot%  `取消启动过程记录
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-25 21:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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