slorelee / wimbuilder2

wimbuilder with new UI & new syntax (hta+bat+vbs+js)
470 stars 105 forks source link

关于外挂PEMaterial 的问题 #55

Closed walkinrain2008 closed 2 years ago

walkinrain2008 commented 3 years ago

按照readme中所说——把PEMaterial目录复制到磁盘分区根目录即可,不需要修改WIM内核,启动系统后自动加载。 我用wimbuilder2 构建的一个全功能的pe iso,并用ventoy加载引导。 问题是,无论我把PEMaterial放在什么地方,里面的PortableApps 都不能自动加载。 请问一下,如何才能自动加载PortableApps? 如果可行的话,可否设置个ini什么的,直接确定自动加载的相对目录?

slorelee commented 3 years ago

现在就是自动加载相对目录,搜索的是 PEMaterial\PEStartup.bat

Program Files目录会被自动复制到X盘,Installers和PortableApps的文件不会做特别处理, 便携软件,直接到PortbaleApps目录运行就行了。

为了,方便你可以在PEStartup.bat中创建快捷方式。

PEStartup.bat里面可以写代码创建 快捷方式指向 PortableApps,或者固定到任务栏和开始菜单。

function BeforeShell()
  LINK([[%Desktop%\BOOTICE.lnk]], dp0 ..[[PortableApps\BOOTICE\BOOTICEx64.exe]])
  ...
end

function PostShell()
  Startmenu:Pin(dp0 .. [[PortableApps\BOOTICE\BOOTICEx%_V8664%.exe]])
  Taskbar:Pin(dp0 .. [[PortableApps\Everything\Everything.exe]])
end

使用的是lua脚本语言。

如果你更习惯PETools, petools.ini的话,自己修改:

boot.wim\PEMaterial\Autoruns\PEStartupMain.bat

call :PEStartup X,Z,Y,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A

:PEStartup
if "%1"=="" goto :EOF
if exist "%1:\PEMaterial\PEStartup.bat" (
    call "%1:\PEMaterial\PEStartup.bat" %Startup_Phase%
)
SHIFT
goto :PEStartup
walkinrain2008 commented 3 years ago

可能是我说的不清楚。 我看了PEStartup.bat 里面又PostShell 与你的一致 我的目录结构如下:

I:\PEMaterial\PEStartup.bat
I:\PEMaterial\README.txt
I:\PEMaterial\UI_LogonPE.jcfg
I:\PEMaterial\PortableApps
I:\PEMaterial\PortableApps\Everything
I:\PEMaterial\PortableApps\SumatraPDF
I:\PEMaterial\PortableApps\Everything\Everything.exe
I:\PEMaterial\PortableApps\Everything\Everything.lng
I:\PEMaterial\PortableApps\SumatraPDF\SumatraPDF-64.exe

我没有增添任何东西,都是在wimbulider中选中2个应用,everything,sumatraPDF,发觉这2个应用从来无法显示在桌面上图标,或者任务栏上图标【说白了,就是winpe是个空壳】。按照bat中所言,至少这2个应用该pin在任务栏上,然而并不是这样。

所以我尝试把PEMaterial 目录作为整体,放在各种目录下,启动后仍旧没有自动加载,才有最初的问题。

我使用ventoy+wimbuilder生成的iso启动,PEMaterial目录放在何处,可以自动加载PortableApps中应用的图标 我把PEMaterial放在U盘的根目录,iso的同目录等等,貌似都没有自动加载!

slorelee commented 3 years ago

你使用虚拟机测试下ISO方式加载。我记得ventoy启动的话,搜索外置要补充配置文件还是其他的。

另外,手动加载模式呢?

就是进入PE后,自己运行 X:\PEMaterial\Autoruns\PEStartupMain.bat

是否可以加载外置。

fuhx commented 2 years ago

可能是我说的不清楚。 我看了PEStartup.bat 里面又PostShell 与你的一致 我的目录结构如下:

I:\PEMaterial\PEStartup.bat
I:\PEMaterial\README.txt
I:\PEMaterial\UI_LogonPE.jcfg
I:\PEMaterial\PortableApps
I:\PEMaterial\PortableApps\Everything
I:\PEMaterial\PortableApps\SumatraPDF
I:\PEMaterial\PortableApps\Everything\Everything.exe
I:\PEMaterial\PortableApps\Everything\Everything.lng
I:\PEMaterial\PortableApps\SumatraPDF\SumatraPDF-64.exe

我没有增添任何东西,都是在wimbulider中选中2个应用,everything,sumatraPDF,发觉这2个应用从来无法显示在桌面上图标,或者任务栏上图标【说白了,就是winpe是个空壳】。按照bat中所言,至少这2个应用该pin在任务栏上,然而并不是这样。

所以我尝试把PEMaterial 目录作为整体,放在各种目录下,启动后仍旧没有自动加载,才有最初的问题。

我使用ventoy+wimbuilder生成的iso启动,PEMaterial目录放在何处,可以自动加载PortableApps中应用的图标 我把PEMaterial放在U盘的根目录,iso的同目录等等,貌似都没有自动加载!

是因为 PEMaterial\PEStartup.bat 里把创建桌面快捷方式的命令注释掉了,解决办法如下: 1、到 vendor\PEMaterial 目录下找到 PEStartup.bat (这个文件里有创建桌面快捷方式),按 Ctrl+C 复制;或自己改一个,找到 function BeforeShell() 函数,添加: AppToDesk('SumatraPDF\SumatraPDF', '-%_V3264%') AppToDesk('WinNTSetup\WinNTSetup', '_x%_V8664%') 2、回到 WimBuilder2 构建界面,开始构建; 3、打开 Factory\target\WIN10XPE\mounted\PEMaterial 目录,盯紧了,看到 PEStartup.bat 出现时,瞬间按 Ctrl+V,覆盖文件,因为这里的 PEStartup.bat 是有没创建桌面快捷方式的,用第1步的文件替换它。 4、接着就等它构建完成就OK了。

slorelee commented 2 years ago

界面上有2个 【我的工具箱】。

一个是 【我的工具箱】(示例演示) 使用 vendor\PEMaterial 一个是 【我的定制(后置)】-【我的工具箱】 使用 AppData.link\vendor\PEMaterial

这个是空白模板,自己放置自己的软件,需要自己修改PEStartup.bat, 这个一旦改好了,你就不要勾选 【我的工具箱】,而用 【我的定制(后置)】-【我的工具箱】。 因为AppData.link下面的文件是会保留,不跟WimBuilder2的更新而影响。

不需要你构建的时【盯紧】过程,然后自己手动覆盖,本来就是全自动完全自由订制的框架。

WimBuilder2\AppData.link\Projects\WIN10XPE_CustomFiles__\80-预提交WIM映像.bat echo 可在此脚本中编写代码,在保存boot.wim变动前,对boot.wim进行最后的修改。

构建时,你应该也能看到这条信息。你也可以简单在这里用 copy /y "D:\我的配置\PEStartup.bat" "%X%\PEMaterial\"

这种方式自动替换,不需要【盯紧了,看到 PEStartup.bat 出现时,瞬间按 Ctrl+V,覆盖文件】。

fuhx commented 2 years ago

WimBuilder2\AppData.link\Projects\WIN10XPE_CustomFiles__\80-预提交WIM映像.bat echo 可在此脚本中编写代码,在保存boot.wim变动前,对boot.wim进行最后的修改。

构建时,你应该也能看到这条信息。你也可以简单在这里用 copy /y "D:\我的配置\PEStartup.bat" "%X%\PEMaterial\"

这种方式自动替换,不需要【盯紧了,看到 PEStartup.bat 出现时,瞬间按 Ctrl+V,覆盖文件】。

太赞了,在 80-预提交WIM映像.bat 里加上 xcopy 复制自定义文件进来就可以了,不用盯着!!

slorelee commented 2 years ago

如果只是外置的,使用

【我的定制(后置)】-【我的工具箱】 编辑这个“补丁”,可以添加文件,编辑自己的PEStartup.bat。

如果你想添加其他的文件,又不想给界面选项的话,用这个 80-预提交WIM映像.bat 就可以了。