无忧启动论坛

标题: 请问:PROGRAMS.WIM中的外置程序的快捷方式分别是怎么添加的? [打印本页]

作者: 山猴    时间: 2008-8-25 22:16
标题: 请问:PROGRAMS.WIM中的外置程序的快捷方式分别是怎么添加的?
用XP SP3全新制作的微型XPE系统 (35MB内核,具英,简,繁版本):
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=125240&extra=page%3D2&page=1

xpe_cn.iso中的PROGRAMS.WIM中的那些外置程序的快捷方式分别是怎么添加到桌面、开始-程序菜单、快速启动菜单的?

我想对PROGRAMS.WIM进行增删,看了教程半天摸不到头绪。。。
作者: yichya    时间: 2008-8-26 08:04
外面的配置文件winpe.ini里啊。
作者: 山猴    时间: 2008-8-26 08:53
原帖由 yichya 于 2008-8-26 08:04 发表
外面的配置文件winpe.ini里啊。

就是找不到配置文件啊
作者: yichya    时间: 2008-8-26 09:47
dir /a 一下?
作者: 山猴    时间: 2008-8-26 10:00
原帖由 yichya 于 2008-8-26 09:47 发表
dir /a 一下?

解开xpe_cn.iso、PROGRAMS.WIM等所有镜像都找不到什么可编辑配置文件啊,难道集成到.exe了,那DIY这个PE不是太麻烦了吗?!
作者: yichya    时间: 2008-8-26 10:01
列个目录?
(dir /a /s)
帖上来。
作者: lsj0416    时间: 2008-8-26 10:09
看来山猴遇到大麻烦了!
作者: 山猴    时间: 2008-8-26 10:37
这个PE还是觉得不错,提供了两种添加外置程序的方式:
直接在xpe_cn.iso中的PROGRAMS文件夹添加外置程序,是挺方便但体积太大。所以想在PROGRAMS.WIM增加外置程序,但不知哪里配置快捷方式,感觉是集成到核心了,但解压XPE_CN.IM_后得到的xpe_cn.img里面又没有相关配置文件。
作者: 北斗    时间: 2008-8-26 20:41
一般都是在ini里啊,写的很清楚的。

楼主好好找找winpe.ini,说不定被扔在哪个角落里了。
作者: khauyeung    时间: 2008-8-27 05:52
原帖由 山猴 于 2008-8-25 22:16 发表
用XP SP3全新制作的微型XPE系统 (35MB内核,具英,简,繁版本):
http://bbs.wuyou.net/viewthread. ... tra=page%3D2&page=1

xpe_cn.iso中的PROGRAMS.WIM中的那些外置程序的快捷方式分别是怎 ...

PROGRAMS.WIM中的那些外置程序的快捷方式是这样建立的:
PE引导时运行PECMD的配置文件%systemroot%\system32\pecmd.ini,有以下的一段子程式:
  1. /////////////////////////////////////////////////////////////////////////////////
  2. _SUB MountOutSideWIM
  3. FIND B:\>16,CALL NTFS_B
  4. FIND B:\=16,CALL NTFS_B
  5. FIND B:\<16,CALL FAT_B
  6. _END

  7. _SUB NTFS_B
  8. EXEC =!CMD.EXE /C "%SystemRoot%\system32\FORMAT.COM B: /FS:NTFS /V:RAMDisk /Q /C /X /FORCE>NUL"
  9. EXEC =!CMD.EXE /C "mkdir B:\PROGRAMS"
  10. EXEC =!CMD.EXE /C "X:\PROGRAMS\PELINK_CNXP.CMD>NUL"
  11. IFEX B:\PROGRAMS\FREEWB\FREEWB.IME,CALL FREEWB_B
  12. _END

  13. _SUB FAT_B
  14. EXEC =!CMD.EXE /C "mkdir B:\PROGRAMS"
  15. EXEC =!CMD.EXE /C "X:\PROGRAMS\PELINK_CNXP.CMD>NUL"
  16. IFEX B:\PROGRAMS\FREEWB\FREEWB.IME,CALL FREEWB_X
  17. _END
  18. /////////////////////////////////////////////////////////////////////////////////
复制代码
这段子程式执行脚本文件X:\PROGRAMS\PELINK_CNXP.CMD,有如下一段内容:
  1. if exist %SystemRoot%\system32\autorun.tag goto _findprog
  2. for %%i in (x q w e r t y u i o p s d f g h j k l z c v n m) do (
  3. if exist %%i:\programs.wim set _drive=%%i
  4. )
  5. if not exist %_drive%:\Programs.wim goto _findprog
  6. echo Trying to mount %_drive%:\programs.wim read-write...
  7. start /min /wait imagex.exe /mountrw %_drive%:\programs.wim 1 B:\Programs >nul
  8. if not exist B:\Programs\PROG_WIM.TAG (
  9. if not exist B:\PROG_WIM.TAG (
  10. echo Error. Trying to mount %_drive%:\programs.wim read-only...
  11. start /min /wait imagex.exe /mount %_drive%:\programs.wim 1 B:\Programs >nul
  12. )
  13. )
复制代码
这段内容负责找寻和挂接programs.wim。之后,脚本运行其建立快捷方式的主要段落 _linkprep,使用shortcut.exe建立快捷方式。例如:
  1. if not exist "%UserProfile%\「开始」菜单\程序\文件工具" mkdir "%UserProfile%\「开始」菜单\程序\文件工具"
  2. if exist "%ProgramFiles%\totalcmd\totalcmd.exe" (start /min /wait ShellExecute.exe -h %SystemRoot%\system32\shortcut.exe /f:"%UserProfile%\「开始」菜单\程序\文件工具\Total Commander.lnk" /a:c /t:"%ProgramFiles%\totalcmd\totalcmd.exe" /w:"%ProgramFiles%\totalcmd")
  3. if exist "%ProgramFiles%\totalcmd\totalcmd.exe" (start /min /wait ShellExecute.exe -h %SystemRoot%\system32\shortcut.exe /f:"%UserProfile%\Application Data\Microsoft\Internet Explorer\Quick Launch\Total Commander.lnk" /a:c /t:"%ProgramFiles%\totalcmd\totalcmd.exe" /w:"%ProgramFiles%\totalcmd")
复制代码
由上所见,改编脚本文件X:\PROGRAMS\PELINK_CNXP.CMD,即可建立你自己的快捷方式。

[ 本帖最后由 khauyeung 于 2008-8-27 07:01 编辑 ]
作者: 山猴    时间: 2008-8-27 10:51
明白了,谢谢khauyeung这么详细的解释!

PELINK_CNXP.CMD要是能外置在xpe_cn.iso中就可以省去解压核心XPE_CN.IM_和映像xpe_cn.img两个步骤了。

[ 本帖最后由 山猴 于 2008-8-27 10:53 编辑 ]
作者: 龙泉剑1    时间: 2008-8-27 22:12
修改“EXEC =!CMD.EXE /C "X:\PROGRAMS\PELINK_CNXP.CMD>NUL”这一句,不知能否把PELINK_CNXP.CMD外置




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3