无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: slore
打印 上一主题 下一主题

[原创] Wimbuilder2-基于hta/vbs/js/bat的图形界面新的PE生成器

    [复制链接]
31#
 楼主| 发表于 2018-6-26 16:57:36 | 只看该作者
本帖最后由 slore 于 2018-6-26 17:00 编辑
青青草 发表于 2018-6-26 16:18
请教大神:
      如图的情况,是什么原因引起的?应如何处理?
谢谢!


问题1:
pe_reg我是想自己做一个宏的,自动替换*.reg文件中的,
[HKEY_LOCAL_MACHINE\SOFTWARE\xxxx]

[HKEY_LOCAL_MACHINE\Tmp_SOFTWARE\xxxx]
的,看到winbuilder中大量的reg文件已经是Tmp_Software了,
所以就没写宏,pe_reg改成正常的reg命令就行了。

D:\Dev\WimBuilder2\Projects\WIN10XPE\Shell\explorer\main.bat
  1. pe_reg import "%~dp0Explorer_RegDefault.reg"
  2. pe_reg import "%~dp0Explorer_RegSoftware.reg"
  3. ->
  4. reg import "%~dp0Explorer_RegDefault.reg"
  5. reg import "%~dp0Explorer_RegSoftware.reg"
复制代码



不过很奇怪啊,我下载的代码看到Projects是改过的(建议下载最新版本看看)。
(另外这个没导入成功也不影响shell的显示,主要是explorer的一些设置,比如桌面显示【我的电脑】,图标排列式样等等。)

问题2:
删除X:\setup.exe
删除X:\Windws\System32\wallpaperhost.exe
默认挂载wim后,文件是TrustInstaller权限,Administrator是没有权限,删除文件的。

这个删除主要是为了不要默认的Windows安装,和避免wallpaperhost.exe占用shell窗口,
不过删除不掉也无所谓,startnet.cmd中添加了
kill /f /im wallpaperhost.exe代码,这个exe不删除也不影响,所以我没管。

要想给挂载的wim添加文件删除权限,在Projects\WIN10XPE\main.bat
开头添加下面语句自己更改权限:
  1. call TrustedInstallerRight "%_WB_MNT_DIR%"
复制代码


或者简单的,直接在config.js中添加一行:
  1. //skip update files' rights operation
  2. var $wb_skip_ufr = '1';
复制代码
所有工程编译都会更新权限。

这个会花40多秒~1分钟,比较费时间,我的习惯是一般是做一个只改权限的boot.wim先,
然后后续改造使用这个boot.wim作为模板,再修改,就不用每次改权限了。

===========================================
本来计划在界面上做一个选项,是否更新boot.wim的文件访问权限,还没添加。
config.js忘了添加注释了,assets\default_config.js有可以设置的参数一览(默认值)。

点评

谢谢了!  详情 回复 发表于 2018-6-27 15:52
回复

使用道具 举报

32#
发表于 2018-6-26 18:26:34 | 只看该作者
Wimbuilder2  学习了。。。。。
回复

使用道具 举报

33#
发表于 2018-6-27 15:52:51 | 只看该作者
slore 发表于 2018-6-26 16:57
问题1:
pe_reg我是想自己做一个宏的,自动替换*.reg文件中的,
[HKEY_LOCAL_MACHINE\SOFTWARE\xxxx]
...

谢谢了!
回复

使用道具 举报

34#
发表于 2018-6-27 19:15:31 | 只看该作者
我要下载回来试试。谢谢。
回复

使用道具 举报

35#
发表于 2018-6-28 20:17:55 | 只看该作者
这几天忙,没来得及尝鲜,过几天再学习
回复

使用道具 举报

36#
发表于 2018-7-3 17:42:40 | 只看该作者
大神这么厉害,能不能做个类似win10开始菜单界面的程序,一个页面可以自定义放置自己的软件,pe下使用

无标题.png (141.01 KB, 下载次数: 454)

无标题.png

点评

用WinXShell.exe写了一个界面:  详情 回复 发表于 2018-7-10 00:34
固定用WinXShell就可以。 如果放到快速启动栏,固定界面内容(可配置),当普通程序点下弹出选择很容易, 用WinXShell配置个UI_LAUCHER下就能做。 要是当开始菜单: [*]自动加载自定义程序入口, [*]系  详情 回复 发表于 2018-7-3 19:17
回复

使用道具 举报

37#
 楼主| 发表于 2018-7-3 19:17:42 | 只看该作者
xuexiang 发表于 2018-7-3 17:42
大神这么厉害,能不能做个类似win10开始菜单界面的程序,一个页面可以自定义放置自己的软件,pe下使用



如果放到快速启动栏,固定界面内容(可配置),当普通程序点下弹出选择很容易,
用WinXShell配置个UI_LAUCHER下就能做。

要是当开始菜单:
  • 自动加载自定义程序入口,
  • 系统自己的【所有程序】,自动加载,显示图标,右键菜单。
  • 拦截WINDOWS键,拦截开始菜单按钮事件

就麻烦,有点懒,一直没做。
回复

使用道具 举报

38#
发表于 2018-7-8 21:07:16 | 只看该作者
各位大佬,图片中的该怎么办?

WinPE-2018-07-08-20-36-44.png (14.64 KB, 下载次数: 460)

WinPE-2018-07-08-20-36-44.png

点评

只有一个索引  详情 回复 发表于 2018-7-9 09:19
使用boot.wim,如果存在2个索引,请在【准备界面】把boot.wim后面的下拉列表选择【2】。  发表于 2018-7-8 23:56
回复

使用道具 举报

39#
发表于 2018-7-9 09:19:21 | 只看该作者
sx3k 发表于 2018-7-8 21:07
各位大佬,图片中的该怎么办?

只有一个索引

点评

我用dism++修改,现在能进入桌面  发表于 2018-7-9 10:54
提供下版本号,是修改过的?因为从install.Wim复制了些注册表项,路径不一样了。你按提示对生成的ISO\sources\boot.Wim通过dism命令改下估计就可以了。  发表于 2018-7-9 09:25
回复

使用道具 举报

40#
 楼主| 发表于 2018-7-10 00:34:08 | 只看该作者
本帖最后由 slore 于 2018-11-3 23:02 编辑
xuexiang 发表于 2018-7-3 17:42
大神这么厉害,能不能做个类似win10开始菜单界面的程序,一个页面可以自定义放置自己的软件,pe下使用


用WinXShell.exe写了一个界面:


做一个快捷方式,固定到任务栏就行了。

自定义界面:
UI_Launcher.zip/main.xml

自定义应用程序启动:
UI_Launcher.zip/main.lua
  1. function onclick(ctrl)
  2.   if ctrl == "calc" then
  3.     suilib.call("run", "calc.exe")
  4.   elseif ctrl == "notepad" then
  5.     suilib.call("run", "notepad.exe")
  6.   end
  7. end
复制代码


旧版的WinXShell.exe也可以出界面,不过只支持窗口在中间或者右下角显示,
附件是开发中的版本,加了一个左下角显示窗口的选项,你可以运行下看看效果。

WinXShell_x64_0709.zip (1.09 MB, 下载次数: 177)

此功能已经集成在最新的WinXShell.exe,且有全屏模式,与Wimbuilder2无关.
回复

使用道具 举报

41#
发表于 2018-7-10 18:47:52 | 只看该作者
slore 发表于 2018-7-10 00:34
用WinXShell.exe写了一个界面:

可以设置全屏显示吗?
菜单图标可不可以提取自程序
可不可以点击后菜单后不消失,
就跟打开一个程序一样不关闭一直在

测试了一下挺好的,17711测试正常

点评

WinXShell的xml的UI+配置文件+lua脚本控制的组合非常的灵活 可以。 UI_Launcher.jcfg中注释掉"OnDeactive":"hide"即可。 删除或者添加任意字符"#OnDeactive":"hide" ==================================  详情 回复 发表于 2018-7-10 22:18
回复

使用道具 举报

42#
 楼主| 发表于 2018-7-10 22:18:37 | 只看该作者
xuexiang 发表于 2018-7-10 18:47
可以设置全屏显示吗?
菜单图标可不可以提取自程序
可不可以点击后菜单后不消失,

WinXShell的xml的UI+配置文件+lua脚本控制的组合非常的灵活

可不可以点击后菜单后不消失
就跟打开一个程序一样不关闭一直在

可以。

UI_Launcher.jcfg中注释掉"OnDeactive":"hide"即可。
删除或者添加任意字符"#OnDeactive":"hide"

==================================================
另外,如果一直显示,何时隐藏呢?
可以追加一个按钮命名 hidebtn,然后在main.lua中的onclick方法添加
  1. elseif ctrl == "hidebtn" then
  2.    sui:hide()
  3. end
复制代码


如果想在任务栏上点击一次显示,再点击一次隐藏那么可以在main.lua添加如下代码:

  1. HIDEME_NEXTTIME = false

  2. function onshow()
  3.   if HIDEME_NEXTTIME then
  4.     sui:hide()
  5.     HIDEME_NEXTTIME = false
  6.   else
  7.     HIDEME_NEXTTIME = true
  8.   end
  9. end
复制代码

可以设置全屏显示吗?

首次打开双击最上面的标题处,可以一直保持全屏。

如果想自动,需要自己在main.lua中写几行代码,控制窗口。
我下个版本在jcfg中提供一个配置参数吧。
"startup_win":"max"


菜单图标可不可以提取自程序

做界面的时候也发现这个问题,程序正在添加记载图标功能,
不过有点麻烦的是,这个UI的各个程序的格子大小不固定,要放到中间的具体大小是不同的,
自动的话,不是很好把握,打算改成main.lua中在onload方法中通过如下方式自己定义UI,你觉得如何?
或者你就是固定100x100的格子,32x32的图标放中间,我自动帮你画图标?


  1. function onload()
  2.    bind_app("app1", "Ghost", "X:\\Ghost\\ghost.exe", "", "icon=xxx.png")
  3.    bind_app("notepad", "记事本", "notepad.exe", "C:\\参数.txt", "icon='notepad.exe,0' dest='20,20,32,32'")
  4. end
复制代码

点评

感谢楼主耐心回答,闲时参照改改试试 其实我是想做个,做不做也无所谓, 只是有这想法,现在很少使用pe了,就是没事的时候看看论坛, 没有桌面图标,没有开始菜单,只有一个软件或者功能合集的界面, 无奈不懂编  详情 回复 发表于 2018-7-10 22:59
回复

使用道具 举报

43#
发表于 2018-7-10 22:59:34 | 只看该作者
slore 发表于 2018-7-10 22:18
WinXShell的xml的UI+配置文件+lua脚本控制的组合非常的灵活

感谢楼主耐心回答,闲时参照改改试试
其实我是想做个,做不做也无所谓,
只是有这想法,现在很少使用pe了,就是没事的时候看看论坛,
没有桌面图标,没有开始菜单,只有一个软件或者功能合集的界面,
无奈不懂编程,只认识一丁点英文,基本就是只会照着模板修改
磁盘管理,计算机管理,设备管理器,资源管理器。。。
固定100x100的格子,全屏或者剧中
5x5或者6x6 感觉有25到36位置就够了
如果程序不在system32目录,路径要怎么写

点评

手上的电脑,没法更新WinXShell,默认最大化全屏和图标提取我估计得到周末了。 如果你只要居中的话,自己修改下 main.xml的第一行,窗口大小,然后UI_Launcher.jcfg中的position改成"center"  详情 回复 发表于 2018-7-10 23:31
斜杠需要转义, suilib.call("run", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")  发表于 2018-7-10 23:27
回复

使用道具 举报

44#
 楼主| 发表于 2018-7-10 23:31:46 | 只看该作者
xuexiang 发表于 2018-7-10 22:59
感谢楼主耐心回答,闲时参照改改试试
其实我是想做个,做不做也无所谓,
只是有这想法,现在很少使用pe ...

手上的电脑,没法更新WinXShell,默认最大化全屏和图标提取我估计得到周末了。
如果你只要居中的话,自己修改下
main.xml的第一行,窗口大小,然后UI_Launcher.jcfg中的position改成"center"
回复

使用道具 举报

45#
发表于 2018-7-23 22:06:22 | 只看该作者
路过支持一下,感谢楼主分享!
回复

使用道具 举报

46#
发表于 2018-7-29 21:05:24 | 只看该作者
想用Wimbuilder2 做一个

基于win10预览版 带explore的PE。自用

而这对我这样的小白,应该是个挑战吧

点评

不知道具体版本,上次更新的时候,一路下一步选择install.wim和winre.wim就可以生成基于WIN10预览版的带explorer的PE。 只要explorer不难。补充DLL和添加点注册表,自己用不在意大小的话,直接把install.wim的注  详情 回复 发表于 2018-7-29 21:40
回复

使用道具 举报

47#
 楼主| 发表于 2018-7-29 21:40:07 | 只看该作者
sghihor 发表于 2018-7-29 21:05
想用Wimbuilder2 做一个

基于win10预览版 带explore的PE。自用

不知道具体版本,上次更新的时候,一路下一步选择install.wim和winre.wim就可以生成基于WIN10预览版的带explorer的PE。

只要explorer不难。补充DLL和添加点注册表,自己用不在意大小的话,直接把install.wim的注册表复制,很省事。参照别的的PE,dir /B /S *.DLL看看别人添加啥复制来就行了。

PE难的是小体积还功能全。
回复

使用道具 举报

48#
发表于 2018-10-21 17:30:21 | 只看该作者
好复杂,这样制作出来的PE是不是只有一个CMD窗口?

点评

半成品,只点3,4个下一步是有点麻烦,不如一键制作好.有个60行的explorer的补丁,做出来是带桌面的.  发表于 2018-10-21 18:47
回复

使用道具 举报

49#
发表于 2018-10-22 00:36:10 | 只看该作者
大神呀,不是点那4个下一步复杂,而是看了一堆代码才倍感复杂。一个小白的理解:就是按照那几个步骤,先做出一个微软原始的PE,没有桌面、没有软件、没有驱动、没有开始菜单,桌面有那60行的explorer的补丁,开始菜单有WinXShell_x64_0709.zip解决,组件.zip是干啥的?这么理解对不对? 像我这样的小白还问一问大神,其他的早就夺门而出了

点评

这个工具是抛砖引玉,针对的是PE生成工具的制作讨论,不是PE。 发这个帖子的是一个讨论PE生成工具的改进,开源,快速,简易化,模块化的一种实现方法。 本想看看是否有兴趣的人参与,不过看来本论坛慢慢的大家时间  详情 回复 发表于 2018-10-22 10:55
回复

使用道具 举报

50#
 楼主| 发表于 2018-10-22 10:55:45 | 只看该作者
KevinK 发表于 2018-10-22 00:36
大神呀,不是点那4个下一步复杂,而是看了一堆代码才倍感复杂。一个小白的理解:就是按照那几个步骤,先做 ...

这个工具是抛砖引玉,针对的是PE生成工具的制作讨论,不是PE。
发这个帖子的是一个讨论PE生成工具的改进,开源,快速,简易化,模块化的一种实现方法。
本想看看是否有兴趣的人参与,不过看来本论坛慢慢的大家时间都不够,没太多热情投入开发,
多数是等成品好了使用者居多。

对于使用者,其实只有:
(运行wimbuilder.cmd,选择install.wim,选择boot.wim(某些wim需要选择索引2)/winre.wim,选择WIN10XPE工程,运行1-run即可。)

这句话,也有部分人理解到了,对19H1等预览版进行PE生成。

你看到的代码是这个PE生成工具本身的脚本代码,对能做PE生成工具的人,
这html/js/bat已经是简单到不行,他们可以看出这中优点。
如果你看到复杂,也是很正常。
通常其他的PE生成工具,添加explorer需要几百行补丁代码,这个工具只要60行,是与PE生成工具的类比。
这套开源脚本的优点,而且希望更多的人提供补丁。
不光能加,这60行也告诉你explorer是如何加上的,我想你也知道有很多人自制PE时卡在给PE添加explorer了吧。多数PE生成器,只是给你explorer的一个选项,你无法知道如何手动添加。

目前所见的自动生成工具都是作者写死的(windows版本更新,不等作者更新就完了),只提供了很小的接口让自定义,也有开源的生成器不要C#开发,.net支持,难度体积都很大。

这个工具是用脚本实现,只要html/js/bat脚本就可以随改随用(这个框架的设计起点新颖)。

不用关心,后面的WinXShell_x64和这个生成工具没有关系,有人问了顺便提。
你就当,有人问说做出来的explorer,开始菜单不能用,别人建议用StartIsBack,
ClassicShell,Start10等软件代替。WinXShell不过是其中一种。
(现在少有把帖子回复也看的人了)

等我有时间完善了这个工具,重新更新下说明,针对【使用者】,【PE生成工具的开发者】分开,
就不这么乱了。


这个框架,对自己修改PE(WIM),增删改文件,更新注册表提供极其方便的形式(批处理宏),
活用的话,PE生成效率显著提供。

回复

使用道具 举报

51#
发表于 2018-10-22 12:39:37 | 只看该作者
slore 发表于 2018-10-22 10:55
这个工具是抛砖引玉,针对的是PE生成工具的制作讨论,不是PE。
发这个帖子的是一个讨论PE生成工具的改进 ...

感谢大神回复,原来如此!可惜我就是刚有点热情的小白而已,只恨自己当初没学个CS专业,要是学了的话,我也会参与开发测试,完善一下,众人拾柴火焰高,毕竟这只是爱好而非给钱的项目,大神也是很难得。我看来只是一个用户了,希望无忧大神们参与开发完善,让此脚本程序一鸣惊人。
回复

使用道具 举报

52#
发表于 2018-10-22 14:35:09 | 只看该作者
试了一下,没做成
准备了windows 10镜像,cn_windows_10_consumer_edition_version_1803_updated_sep_2018_x64_dvd_a3fcbed0,解压后按照步骤进行。




结果只出现如下:



20181022140207.png (8.6 KB, 下载次数: 21)

20181022140207.png

点评

看样子你是直接运行了WimBuilder.hta, 请运行WimBuilder.cmd,会检查管理者权限和设置内部命令路径。  发表于 2018-10-22 15:08
回复

使用道具 举报

53#
发表于 2018-10-22 16:15:24 | 只看该作者
刚才按照大神说的,以WimBuilder.cmd方式运行,结果如下:
运行1-run后,成功了

点2-make_iso创建ISO文件,也成功了。小问题:请按任意键继续,按了字母键没反应,按enter或空格键退出。


制作的PE的ISO里只有两个文件夹:

分别打开如下:



接着我用ULTRAISO以U+V2、隐藏的方式写入U盘,结果纯UEFI下无法启动,而在legacy bios下,能启动U盘,但是刷了半天码,(U盘没问题,前几天在电脑上制作多PE都用过)显示:


看来,这个PE还需要后期加工,当然wimbuilder2软件本身似乎也要完善了。
制作脚本程序不容易,还是要感谢大神。



点评

ISO的模板各不相同,文件有些大我就没上传,相同目录下有个_ISO_目录, 你把系统的ISO中的: 放进去,就可以生产可以启动的ISO了.  详情 回复 发表于 2018-10-22 21:22
回复

使用道具 举报

54#
发表于 2018-10-22 17:10:04 | 只看该作者
开发用的语言类型太多,反而不利用使用。不如统一使用一种语言。

点评

需要使用者只要按约定写补丁(文件列表,注册表,配置文件变更),开发者就是html界面加js而已。  发表于 2018-10-22 21:16
回复

使用道具 举报

55#
 楼主| 发表于 2018-10-22 21:22:58 | 只看该作者
KevinK 发表于 2018-10-22 16:15
刚才按照大神说的,以WimBuilder.cmd方式运行,结果如下:
运行1-run后,成功了

ISO的模板各不相同,文件有些大我就没上传,相同目录下有个_ISO_目录,
你把系统的ISO中的:

  1. boot(17MB)
  2. efi(20MB)
  3. sources(创建一个空目录)
  4. bootmgr
  5. bootmgr.efi
复制代码


放进去,就可以生产可以启动的ISO了.
回复

使用道具 举报

56#
发表于 2018-10-23 10:07:05 | 只看该作者
slore 发表于 2018-10-22 21:22
ISO的模板各不相同,文件有些大我就没上传,相同目录下有个_ISO_目录,
你把系统的ISO中的:

谢谢回复,原来这样,明白了,我完了再试试
回复

使用道具 举报

57#
发表于 2018-11-14 19:11:36 | 只看该作者


17134制作失败

回复

使用道具 举报

58#
 楼主| 发表于 2018-11-14 19:58:49 | 只看该作者

bin\_Process.bat第56行
利用dism命令,获取winre.wim的版本,语言信息。

你本机运行:
dism /Get-WimInfo /WimFile:"D:\sources\winre.wim" /Index:1 /English

可以出结果么?可以的话,你把结果给我看下,不知道是不是版本不同结果解析不对。

点评

[attachimg]382245[/attachimg] [attachimg]382246[/attachimg]  详情 回复 发表于 2018-11-14 21:13
回复

使用道具 举报

59#
发表于 2018-11-14 21:13:34 | 只看该作者
slore 发表于 2018-11-14 19:58
bin\_Process.bat第56行
利用dism命令,获取winre.wim的版本,语言信息。





回复

使用道具 举报

60#
发表于 2018-11-14 21:23:36 | 只看该作者
本帖最后由 2011mtw35 于 2018-11-14 21:37 编辑

做好了,是我理解错误,但如果完善后,希望写一个配图片的教程。

1.点【准备】,选择 install.wim,选择 boot.wim,下一步,

2.选WIN10XPE工程,下一步,

3.patch跳过,直接下一步,
4.点1-run,再点2-make_iso










回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-28 09:07

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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