NoName Team 電腦資訊討論區

 找回密碼
 我要註冊
搜索
查看: 7386|回復: 2

用新的PECMD4.0.2011.0501和MakeXpe 1.06a來製作XPE的方法

[複製鏈接]
發表於 2012-3-21 21:14:47 | 顯示全部樓層 |閱讀模式
轉貼wusun 大的教學回文...感謝

原文位置: http://nonameteam.cc/forum.php?mod=redirect&goto=findpost&ptid=36&pid=185&fromuid=1

如果要用新的PECMD4.0.2011.0501MakeXpe 1.06a來製作XPE:

1.你必須先刪除以下舊的PECMD.EXE :
  1. MakeXpe\Base\NoNXPE\RXPE\PECMD.EXE
複製代碼
2.加入新的PECMD.EXE到下面位置:
  1. MakeXpe\Base\NoNXPE\RXPE\System32\PECMD.EXE
複製代碼
這樣製作好的XPE就可以進入到桌面了。

但MakeXpe 1.06a作好的XPE並不包含OUTTOOL外置工具,故你要從(20090909)NoName Information Team XPE.iso中擷取OUTTOOL目錄,並將之存到:
  1. MakeXpe\PeISO\OUTTOOL
複製代碼
此時製作好的XPE才能有外置工具可用!
但是因為新版PECMD.EXE的_SUB語法有所變更,故一些檔案還要做相應的修改!
以下變更部分為第22行:由1改為-
MakeXpe\PeISO\OUTTOOL\OUTMENU.INI

  1. CALL OutMenuRun
  2. CALL @OutMenu

  3. _SUB TimerRun
  4. CALC TimerCount = %TimerCount% - 1
  5. ENVI @Label=%TimerCount% 秒之後自動執行。
  6. _END

  7. _SUB TimerDisable
  8. ENVI @Timer1=0
  9. ENVI @Timer2=0
  10. ENVI @Label=停止計時
  11. _END

  12. _SUB ExitWin
  13. ENVI @Timer1=0
  14. ENVI @Timer2=0
  15. ENVI $SelMode=%List%
  16. KILL \%OutMenu%
  17. _END

  18. _SUB OutMenu,W250H103,OutMenu,,,-
  19. GROU Group,L8T4W226H85,請選擇安裝模式
  20. LIST List,L20T28W128H60,%MenuList%,CALL TimerDisable,%Default%
  21. ITEM Button1,L156T27W64H24,確定,CALL ExitWin
  22. ITEM Button2,L156T56W64H24,停止計時,CALL TimerDisable
  23. LABE Label,L24T62W128H20,%ExitTime% 秒之後自動執行。
  24. CALC ExitTimeM=%ExitTime% * 1000
  25. ENVI TimerCount=%ExitTime%
  26. TIME Timer1,%ExitTimeM%,CALL ExitWin
  27. TIME Timer2,1000,CALL TimerRun
  28. _END


  29. _SUB OutMenuRun
  30. ENVI ExitTime=10
  31. ENVI Default=載入所有模組
  32. ENVI MenuList=載入所有模組|自定義加載模組
  33. FORX %OUTTOOL%\WimList\*.LST,FullPath,0,CALL SetList
  34. _END

  35. _SUB SetList
  36. NAME FName=%FullPath%
  37. ENVI MenuList=%MenuList%|%FName%
  38. _END
複製代碼
以下變更部分為第30行:由1改為-
MakeXpe\PeISO\OUTTOOL\UserMenu.CMD
  1. @echo off
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. set CheckW=240
  4. set CheckH=22
  5. set Y=20

  6. for /f "delims=" %%i in (WimList\必要模組.txt) do set %%~ni.Check=1
  7. set WIMCount=0
  8. for /f "delims=" %%i in ('dir /b/s/o "WIMMOD\*.WIM"') do (
  9. if "!%%~ni.Check!"=="" (
  10. set WIMLST=!WIMLST! "%%~ni"
  11. set /A WIMCount=WIMCount + 1
  12. )
  13. )
  14. set /A X=(WIMCount-1)/Y+1

  15. set /A MenuW=X*CheckW+48
  16. if %MenuW% LSS 284 set MenuW=284
  17. if %X% EQU 1 (set /A MenuH=WIMCount*CheckH+72) else (set /A MenuH=Y*CheckH+72)
  18. set /A GroupW=MenuW-17
  19. set /A GroupH=MenuH-44
  20. set /A LabelT=MenuH-32
  21. set /A ButtonT=MenuH-36
  22. set /A ButtonL=MenuW-76


  23. copy UserMenu.ini %windir%\UserMenu.ini>nul

  24. for %%i in (
  25. "_SUB UserMenu,W%MenuW%H%MenuH%,UserMenu,,,-"
  26. "GROU Group,L6T0W%GroupW%H%GroupH%,自定義加載模組"
  27. "LABE Label,L20T%LabelT%W160H16,選擇你要加載的模組"
  28. "ITEM Button,L%ButtonL%T%ButtonT%W64H24,確定,CALL RunUserMode"

  29. ) do (CMD /U /C echo.%%~i>>%windir%\UserMenu.ini)

  30. set NowX=0
  31. set NowY=0
  32. for %%i in (%WIMLST%) do (
  33. set /A NowL=NowX*CheckW+20
  34. set /A NowT=NowY*CheckH+22
  35. CMD /U /C echo CHEK %%~i,L!NowL!T!NowT!W%CheckW%H%CheckH%,%%~i,CALL TimerDisable,^0>>%windir%\UserMenu.ini
  36. set /A NowY=NowY+1
  37. if !NowY! EQU %Y% (
  38. set /A NowX=NowX+1
  39. set NowY=0
  40. )
  41. )
  42. CMD /U /C echo _END>>%windir%\UserMenu.ini
複製代碼
以下變更部分為第52行:由1改為-
MakeXpe\PeISO\OUTTOOL\OUTPECMD.INI

  1. FIND MEM<384,CALL IFSetPageFile
  2. CALL ModSetting
  3. FIND $%SelMode%=自定義加載模組,CALL ChoseMod
  4. CALL @OUTTOOLINI

  5. _SUB IFSetPageFile
  6. ENVI PF=PEPageFile.sys
  7. FORX \%PF%,FILEPEPageFile,0,FILE %FILEPEPageFile%
  8. TEAM TEXT 是否設置系統分頁檔?|ENVI $YESNO=YES
  9. MESS 您的電腦記憶體較少,某些外置軟體的運行可能需要用到\n虛擬記憶體。設置了系統分頁檔,有助於提高系統的速度和穩定性;\n如果您需要保護並恢復硬碟分區數據,可跳過系統分頁檔的設置。\n \n您確定要設置系統分頁檔嗎?(建議設置,30 秒後默認選擇否)@設置虛擬內存 #YN *30000 $N
  10. FIND $%YESNO%=YES,Call SetPageDrv!TEXT 沒有建立系統分頁檔……
  11. WAIT 500
  12. _END

  13. _SUB SetPageDrv
  14. TEXT 正在設定系統分頁檔……
  15. BROW tag,*C:\,請選擇分頁檔文件存放的分區,選擇取消系統會自動選擇分區。
  16. FIND $%tag%=,TEAM TEXT 正在設定系統分頁檔(自動選擇存放分區)……|PAGE D:\%PF% 384 484!TEAM TEXT 正在設定系統分頁檔(系統分頁檔存放在 %tag% )……|PAGE %tag%\%PF% 384 484
  17. _END

  18. _SUB ModSetting
  19. TEXT 載入WIM檔案中...
  20. ENVI $OUTTOOL=%CURDRV%\OUTTOOL
  21. LOAD %OUTTOOL%\OUTMENU.INI
  22. _END

  23. _SUB ChoseMod
  24. PATH @%OUTTOOL%
  25. EXEC !=UserMenu.CMD
  26. LOAD %windir%\UserMenu.ini
  27. _END

  28. _SUB Run
  29. ENVI @PBAR=30
  30. PATH @%OUTTOOL%
  31. EXEC !=WIMMOD.CMD
  32. TEAM USER NoName Information Team,無名資訊團隊|FBWF P100 L300 H400|NUMK 0
  33. ENVI PF=PEPageFile.sys
  34. FORX \%PF%,FILEPEPageFile,0,FILE %FILEPEPageFile%
  35. _END

  36. _SUB ModEnd
  37. TEXT 執行軟體基本設置...
  38. ENVI @PBAR=60
  39. LOAD %WINDIR%\WIMMOD\PESYSTEM\PESYSTEM.INI
  40. PATH @%OUTTOOL%
  41. EXEC !=OUTTOOL.CMD
  42. LOAD %WINDIR%\OUTTOOL.INI
  43. PATH @%OUTTOOL%
  44. _END

  45. _SUB OUTTOOLINI,L1T580W800H20,模組,,,-
  46. PBAR PBAR,L1T7W794H10,30
  47. TIME OUTTOOLRUN,100,Team CALL Run|CALL ModEnd|KILL \%OUTTOOLINI%
  48. _END
複製代碼
修改完後,再重製XPE,這時XPE已經可以進入桌面了!
但一進桌面後點選「開始->程式集」,你會發現還是沒有外置工具的選單,這是因為MakeXpe 1.06a並沒有把WIMGAPI.dll整合進XPE內,而外置工具WIM檔的載掛需要WIMGAPI.dll,故你必手動把WIMGAPI.dll加進去:
  1. MakeXpe\Base\NoNXPE\RXPE\System32\WIMGAPI.dll
複製代碼
這時你再重製XPE,你會發現外置工具的選單終於出來了!









發表於 2012-3-24 08:40:23 | 顯示全部樓層
請問是否可以將 OUTPECMD.INI 中需要修改的部分 HighLight 出來,以方便對照?
發表於 2016-1-1 16:25:19 | 顯示全部樓層
感謝教導, 辛苦了.
您需要登錄後才可以回帖 登錄 | 我要註冊

本版積分規則

小黑屋|手機版|NoName Team 電腦資訊討論區 |網站地圖

GMT+8, 2024-11-28 00:46 , Processed in 0.614820 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表