无忧启动论坛

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

[原创] (2022-02-02 更新) Re:WIN10XPE - 从零开始构建的全功能PE

    [复制链接]
931#
发表于 2019-7-4 19:20:56 | 只看该作者
本帖最后由 frg521 于 2019-7-4 21:44 编辑

                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  


regbin3.c
x:\regwrite\regbin3.c(27) : warning C4013: 'printf' undefined; assuming extern returning int
Linking...
  1.     hFile = CreateFileA(filename, GENERIC_READ, 0, NULL,
  2.         OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  3.     if (!hFile) {
  4.         printf("fail to open file.\n");
  5.         return 1;
复制代码

看起来,前面也有过这命令,这次报错了。不过神奇的是,写入数据正确。。。


用手机回帖,还能写代码?纯手工打字母+符号?



要读写大数据,就是自己把128*改为很大,给了1024失败,最大1024*1024-4

目前128k+1就行不通吧。循环的话,又要增加很多代码?
读写合并,参数增加到末尾简单?因为当时已经使用了前3-4参数,我再加个5用export -export /export import -import /import ,帮助还是内置吧,自己可以regbin -? /? -help /help

   

点评

正常的代码是用循环的128KB读取,还有的话继续读取,感觉够了。。。还有FileGetSize先获取文件大小,直接malloc(filesize)。读取文件那么大。  发表于 2019-7-4 21:23
是手机,没电脑方便,这种程度的还是可以全键盘上滑输入。。。  发表于 2019-7-4 19:44
回复

使用道具 举报

932#
 楼主| 发表于 2019-7-4 19:25:20 来自手机 | 只看该作者
本帖最后由 slore 于 2019-7-4 19:26 编辑

这个是警告,不影响,就没用它的返回值。
最开始 #include<stdio.h> 就不出了。
回复

使用道具 举报

933#
发表于 2019-7-4 19:46:28 | 只看该作者
有没有下ISO的地址,提示至少有8GC盘空间,我实在腾不出来

点评

我都是从 https://uup.rg-adguard.net/ 下载的。。。空间2T所以没在意。。。  发表于 2019-7-4 20:37
回复

使用道具 举报

934#
发表于 2019-7-4 23:46:30 | 只看该作者
老大您好!经过不断的测试,发觉采用您原汁原味的 SOFTWARE 及 SYSTEM 注册表,轻易就可以获得 MTP 功能。但是转换至管理员模式之后,却无法显示出联网电脑及伺服器。把注册表修改至可以显示出联网电脑及伺服器(如下图)之后,MTP 功能却也消失了。恳请详告要拥有 MTP 功能,这两个注册表需要修改的项目!最好附来已改好的 REG 文件。

另外,只有采用原汁原味的 SOFTWARE 注册表,PE 初启动时,滑鼠才可用。经过修改之后,此项功能就消失了。恳请告知要如何保有这个重要的功能。非常感谢!

点评

很感兴趣后面提到的"另外"是怎么一个现象, 能描述详细一点吗?  详情 回复 发表于 2019-7-5 20:31
PE 初启动时,滑鼠才可用,应该是切换管理员超前于pe未初始化,故不能用鼠标。  详情 回复 发表于 2019-7-5 03:31
网络机器一览下个版本准备添加。不过和MTP有没有冲突我不清楚。至于鼠标从来没有不能用过。每次从0构建,各功能测试正常就是正常了。你优化了什么注册表项目我不知道啊。鼠标可能是驱动冲突?  发表于 2019-7-5 00:03
回复

使用道具 举报

935#
发表于 2019-7-5 03:31:12 | 只看该作者
本帖最后由 homyang 于 2019-7-5 03:45 编辑
WAIGO 发表于 2019-7-4 23:46
老大您好!经过不断的测试,发觉采用您原汁原味的 SOFTWARE 及 SYSTEM 注册表,轻易就可以获得 MTP 功能。 ...


PE 初启动时,滑鼠才可用,应该是切换管理员超前于pe初始化,故不能用鼠标。你可以用老办法,就是先system登录到桌面,然后切换。

我记得似乎这一条运行后 EXEC %WinDir%\System32\winpeshl.exe可用鼠标

点评

谢谢告知!我马上把新代码运行看看……  详情 回复 发表于 2019-7-5 10:11
回复

使用道具 举报

936#
发表于 2019-7-5 10:08:58 | 只看该作者
网络机器一览下个版本准备添加。不过和MTP有没有冲突我不清楚。至于鼠标从来没有不能用过。每次从0构建,各功能测试正常就是正常了。你优化了什么注册表项目我不知道啊。鼠标可能是驱动冲突?
---------------------------------------------------------------------------------------------------------------------------------------
1、正如楼上所言,"应该是切换管理员超前于pe初始化,故不能用鼠标"。可否告知您用什么办法令鼠标提前可用?

2、您说 "网络机器一览下个版本准备添加。不过和MTP有没有冲突我不清楚"。我今天就想发布 Win10 19H2 18362.10000 PE,等不及了。可否提供实现 MTP 功能在 SOFTWARE 及 SYSTEM 注册表,必须修改的全部 REG 文件,让我输入去看看。非常非常感谢!!!
回复

使用道具 举报

937#
发表于 2019-7-5 10:11:59 | 只看该作者
homyang 发表于 2019-7-5 03:31
PE 初启动时,滑鼠才可用,应该是切换管理员超前于pe初始化,故不能用鼠标。你可以用老办法,就是先sys ...

谢谢告知!我马上把新代码运行看看……

点评

\Projects\WIN10XPE\01-Components\MTP_Support\main.bat里有详细的注册表修改信息。另外s大也特别说明了。要Patch_drvinst,才能支持MTP  发表于 2019-7-5 10:30
回复

使用道具 举报

938#
发表于 2019-7-5 13:56:12 | 只看该作者
本帖最后由 WAIGO 于 2019-7-5 14:06 编辑

\Projects\WIN10XPE\01-Components\MTP_Support\main.bat里有详细的注册表修改信息。另外s大也特别说明了。要Patch_drvinst,才能支持MTP
----------------------------------------------------------------------------------------------------------------

谢谢告知,MTP_Support\main.bat 里面有关修改部分都已做成 REG 文件,但输入效果不佳。保留 SYSTEM 注册表,单更改 SOFTWARE 注册表,MTP 功能还勉强可用,兩个注册表都改,就一定不成功。不知道遗留了什么东西。drvinst.exe 一直都釆用 S 大原来的文件,这个不会错。其实一应文件都已齐全了,就单单欠缺虽要修改的完整注册表项目。

下面截图显示,釆用两个原汁原味的注册表文件,点击桌面的启用 MTP 图示时,显示载入成功:



下面截图显示,只釆用原汁原味的 SYSTEM 注册表, SOFTWARE 注册表经过修改,点击桌面的启用 MTP 图示时,虽然显示载入失败,但 MTP 功能还是可以应用:



点评

准备页面,勾选使用test\boot.wim,只勾选mtp,windows附件,画板,图片查看器,不要勾选。会生成一个boot.wim包含所有增加文件和注册表信息。你挂载导出对比看看。  详情 回复 发表于 2019-7-5 14:58
回复

使用道具 举报

939#
 楼主| 发表于 2019-7-5 14:58:15 | 只看该作者
WAIGO 发表于 2019-7-5 13:56
\Projects\WIN10XPE\01-Components\MTP_Support\main.bat里有详细的注册表修改信息。另外s大也特别说明了。 ...

准备页面,勾选使用test\boot.wim,只勾选mtp,windows附件,画板,图片查看器,不要勾选。会生成一个boot.wim包含所有增加文件和注册表信息。你挂载导出对比看看。

点评

已遵嘱提取并输入注册表文件,但是显示手机 MTP 功能依然失败,只有用原汁原味注册表才可以成功……  详情 回复 发表于 2019-7-5 21:23
今天根据s大的批处理,自行尝试mtp功能,发现不需要破解drvinst,并且不需要就系统后再次安装驱动。只需要将相关的文件都保存到PE里,并且将相关的system注册表修改好。 在进入系统后,添加这个software的注册项目  详情 回复 发表于 2019-7-5 15:23
回复

使用道具 举报

940#
发表于 2019-7-5 15:23:49 | 只看该作者
本帖最后由 foxfirefox 于 2019-7-5 15:25 编辑
slore 发表于 2019-7-5 14:58
准备页面,勾选使用test\boot.wim,只勾选mtp,windows附件,画板,图片查看器,不要勾选。会生成一个boo ...


今天根据s大的批处理,自行尝试mtp功能,发现不需要破解drvinst,并且不需要就系统后再次安装驱动。只需要将相关的文件都保存到PE里,并且将相关的system注册表修改好。
在进入系统后,添加这个software的注册项目,然后刷新一下explorer,再手机连接mtp,即可在 此电脑 里找到
手机型号的文件夹。
reg add HKLM\software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders\{35786D3C-B075-49b9-88DD-029876E11C01} /ve /d "Portable Devices"  /f   1>nul 2>nul

点评

我的方法,不需要你的安装驱动的批处理,只是从你的批处理找到了software的注册表项目,在连接手机的mtp前或者后,将HKLM\software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolder  详情 回复 发表于 2019-7-5 17:23
我测试的就是 64位的 18932  发表于 2019-7-5 16:16
32位不用处理drvinst。64位需要,会提示驱动不可用。  发表于 2019-7-5 15:27
回复

使用道具 举报

941#
发表于 2019-7-5 15:45:09 | 只看该作者
本帖最后由 黑中见白 于 2019-7-5 17:06 编辑

嘻嘻,pe运行百分浏览器搞定了,是文件的问题,
和注册表无关.
原来 通过系统服务Prefetch,监测的使用文件列表,有时候也是不全的.


不对,原来是pe作者解决了~~
哈哈哈乌龙
回复

使用道具 举报

942#
发表于 2019-7-5 17:23:44 | 只看该作者
foxfirefox 发表于 2019-7-5 15:23
今天根据s大的批处理,自行尝试mtp功能,发现不需要破解drvinst,并且不需要就系统后再次安装驱动。只 ...

我的方法,不需要你的安装驱动的批处理,只是从你的批处理找到了software的注册表项目,在连接手机的mtp前或者后,将HKLM\software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders\{35786D3C-B075-49b9-88DD-029876E11C01} 的默认值设置成 "Portable Devices"后刷新一下explorer,然后在 此电脑 里就出现的 手机的 图标

点评

rem @echo off reg add HKLM\software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders\{35786D3C-B075-49b9-88DD-029876E11C01} /ve /d "Portable Devices" /f 1>nul 2>nul  详情 回复 发表于 2019-7-5 21:18
回复

使用道具 举报

943#
发表于 2019-7-5 20:31:49 | 只看该作者
WAIGO 发表于 2019-7-4 23:46
老大您好!经过不断的测试,发觉采用您原汁原味的 SOFTWARE 及 SYSTEM 注册表,轻易就可以获得 MTP 功能。 ...

很感兴趣后面提到的"另外"是怎么一个现象, 能描述详细一点吗?

点评

WimBuilder2 制作时,帐户选启用 ADMIN ,则 PE 启动时会显示询问窗口,并且可使用滑鼠点击。此时并未载入 PECMD ,也未进入桌面,正常情况下应该不能使用滑鼠才对。但通过楼主的特别设置,滑鼠变成可用了。  详情 回复 发表于 2019-7-5 21:34
回复

使用道具 举报

944#
发表于 2019-7-5 21:18:36 | 只看该作者
foxfirefox 发表于 2019-7-5 17:23
我的方法,不需要你的安装驱动的批处理,只是从你的批处理找到了software的注册表项目,在连接手机的mtp ...

rem @echo off
reg add HKLM\software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders\{35786D3C-B075-49b9-88DD-029876E11C01} /ve /d "Portable Devices"  /f   1>nul 2>nul
Echo.
Echo.
Echo.等待 6 秒以便连接手机……
PECMD WAIT -6000
--------------------------------------------------------------------------------------------------
已将上面代码制成批次文件,执行后一样沒有 MTP 功能。
回复

使用道具 举报

945#
发表于 2019-7-5 21:23:37 | 只看该作者
slore 发表于 2019-7-5 14:58
准备页面,勾选使用test\boot.wim,只勾选mtp,windows附件,画板,图片查看器,不要勾选。会生成一个boo ...

已遵嘱提取并输入注册表文件,但是显示手机 MTP 功能依然失败,只有用原汁原味注册表才可以成功……

点评

[attachimg]396476[/attachimg] 不管SYSTEM帐户还是Administrator,网络列表和MTP功能都正常的。 本机偶尔成功过一次,不知道为什么现在刷不出来了,难道和PP注册表有关系? 代码周末再调查看看。至少他们  详情 回复 发表于 2019-7-5 23:14
回复

使用道具 举报

946#
发表于 2019-7-5 21:34:21 | 只看该作者
Bluebells 发表于 2019-7-5 20:31
很感兴趣后面提到的"另外"是怎么一个现象, 能描述详细一点吗?

WimBuilder2 制作时,帐户选启用 ADMIN ,则 PE 启动时会显示询问窗口,并且可使用滑鼠点击。此时并未载入 PECMD ,也未进入桌面,正常情况下应该不能使用滑鼠才对。但通过楼主的特别设置,滑鼠变成可用了。

点评

原来是选择登录用户阶段才会发生的问题  详情 回复 发表于 2019-7-5 22:20
没做特别设置。。。微软的默认机制。 上面已经有人回复了。你不是去试了么?运行winpeshl.exe就可以了。 另外好好看工程脚本的话,PecmdAdmin.ini有不运行winpeshl.exe也可以用的方法。。。  详情 回复 发表于 2019-7-5 21:53
回复

使用道具 举报

947#
 楼主| 发表于 2019-7-5 21:53:22 | 只看该作者
WAIGO 发表于 2019-7-5 21:34
WimBuilder2 制作时,帐户选启用 ADMIN ,则 PE 启动时会显示询问窗口,并且可使用滑鼠点击。此时并未载 ...
但通过楼主的特别设置,滑鼠变成可用了。


没做特别设置。。。微软的默认机制。

上面已经有人回复了。你不是去试了么?运行winpeshl.exe就可以了。

另外好好看工程脚本的话,PecmdAdmin.ini有不运行winpeshl.exe也可以用的方法。。。
回复

使用道具 举报

948#
发表于 2019-7-5 22:20:32 | 只看该作者
WAIGO 发表于 2019-7-5 21:34
WimBuilder2 制作时,帐户选启用 ADMIN ,则 PE 启动时会显示询问窗口,并且可使用滑鼠点击。此时并未载 ...

原来是选择登录用户阶段才会发生的问题
回复

使用道具 举报

949#
发表于 2019-7-5 22:28:41 | 只看该作者
1903没有出现DWN选项啊

点评

DWN是啥?? DWM的话,在 【组件】页面。  发表于 2019-7-5 22:46
回复

使用道具 举报

950#
发表于 2019-7-5 23:00:59 | 只看该作者
好吧是我打错,组件页面没找到DWM呢。

点评

[attachimg]396473[/attachimg] 这种简单的,没啥特别设置的集中到这里了。  详情 回复 发表于 2019-7-5 23:12
回复

使用道具 举报

951#
 楼主| 发表于 2019-7-5 23:12:02 | 只看该作者
令狐大虾 发表于 2019-7-5 23:00
好吧是我打错,组件页面没找到DWM呢。



这种简单的,没啥特别设置的集中到这里了。

点评

好吧谢谢回复。构建后找不到生成的PE.WIM,也生成不了ISO。楼主有木有详细一点的操作步骤视图呢。初次接触此工具云里雾里啊 [attachimg]396478[/attachimg]  详情 回复 发表于 2019-7-5 23:17
默认是勾选的啊。你1903没DWM效果?  发表于 2019-7-5 23:12
回复

使用道具 举报

952#
 楼主| 发表于 2019-7-5 23:14:55 | 只看该作者
WAIGO 发表于 2019-7-5 21:23
已遵嘱提取并输入注册表文件,但是显示手机 MTP 功能依然失败,只有用原汁原味注册表才可以成功……



不管SYSTEM帐户还是Administrator,网络列表和MTP功能都正常的。

本机偶尔成功过一次,不知道为什么现在刷不出来了,难道和PP注册表有关系?

代码周末再调查看看。至少他们没有冲突,直接连接,右键 远程桌面 都正常。

点评

对不起,忘了告诉您,用您的两个注册表无论怎样更改,显示联网其它电脑的功能都无法实现。最后是改用了 "Win10builder_2019.05.24" 制作出来的 SOFTWARE 及 SYSTEM 注册表才获得成功。为了重获 MTP 功能,我把原注册  详情 回复 发表于 2019-7-6 10:21
回复

使用道具 举报

953#
发表于 2019-7-5 23:17:16 | 只看该作者
slore 发表于 2019-7-5 23:12
这种简单的,没啥特别设置的集中到这里了。

好吧谢谢回复。构建后找不到生成的PE.WIM,也生成不了ISO。楼主有木有详细一点的操作步骤视图呢。初次接触此工具云里雾里啊

点评

3楼有GIF啊。你选择的是单独的install.wim,没有boot无法创建启动镜像。 你第一个准备页面,选择一个ISO挂载的光驱,比如H盘。 你自己看提示,虽然无法创建iso, 但是boot.wim构建好了啊。 你看清楚命令提示符  详情 回复 发表于 2019-7-5 23:46
回复

使用道具 举报

954#
 楼主| 发表于 2019-7-5 23:46:43 | 只看该作者
令狐大虾 发表于 2019-7-5 23:17
好吧谢谢回复。构建后找不到生成的PE.WIM,也生成不了ISO。楼主有木有详细一点的操作步骤视图呢。初次接触 ...

3楼有GIF啊。你选择的是单独的install.wim,没有boot无法创建启动镜像。
你第一个准备页面,选择一个ISO挂载的光驱,比如H盘。


你自己看提示,虽然无法创建iso, 但是boot.wim构建好了啊。
你看清楚命令提示符中的路径。蓝色高亮了。

BUILD完生成到:
WimBuilder2\_Factory_\target\WIN10XPE\build\boot.wim

MAKE_ISO
WimBuilder2\_ISO_\sources\boot.wim

点评

谢谢回复,找到。并且自己用一个模板启动 [attachimg]396480[/attachimg] 开始菜单难道不是StartIsBack? 点击后右键属性直接跳转到系统属性了  详情 回复 发表于 2019-7-5 23:51
回复

使用道具 举报

955#
发表于 2019-7-5 23:51:02 | 只看该作者
slore 发表于 2019-7-5 23:46
3楼有GIF啊。你选择的是单独的install.wim,没有boot无法创建启动镜像。
你第一个准备页面,选择一个ISO ...

谢谢回复,找到。并且自己用一个模板启动

开始菜单难道不是StartIsBack?
点击后右键属性直接跳转到系统属性了

点评

不能用,所以改到系统属性页面了  发表于 2019-7-6 00:07
StartIsBack的属性设置界面是32位。64位的报错。用32位制作,或者64位制作时勾选【构建】->【支持运行32位应用程序 】。  发表于 2019-7-5 23:57
回复

使用道具 举报

956#
发表于 2019-7-6 00:15:47 | 只看该作者
PE里面程序文件夹存在“Windows Defender”,为啥不做移除呢?
还有WMP无法运行哈。
而且打开资源管理器查找文件搜索不可用

点评

1.移除目录,自己del /f /q X:\xxxxx。细节不处理。开始菜单都不怎么用啊。 2. WMP组件 我没添加。你有文件列表,可以自己添加。(方案已经有了,貌似必须32位,我就懒得弄了) 3. 【组件】-【搜索】启用就可以了  详情 回复 发表于 2019-7-6 00:23
回复

使用道具 举报

957#
 楼主| 发表于 2019-7-6 00:23:35 | 只看该作者
令狐大虾 发表于 2019-7-6 00:15
PE里面程序文件夹存在“Windows Defender”,为啥不做移除呢?
还有WMP无法运行哈。
而且打开资源管理器 ...

1.移除目录,自己del /f /q X:\xxxxx。细节不处理。开始菜单都不怎么用啊。
2. WMP组件 我没添加。你有文件列表,可以自己添加。(方案已经有了,貌似必须32位,我就懒得弄了)
3. 【组件】-【搜索】启用就可以了。

系统的太慢了,都是用Everything。

回复

使用道具 举报

958#
发表于 2019-7-6 00:34:59 | 只看该作者
嗯,谢谢回复。
“64位操作系统上支持运行32位应用程序 ”?这点在真实的系统不存在此需求吧?真实的系统默认都支持的啊。PE如此为之是基于什么原因呢?

点评

微软默认的boot.wim也好,winre.wim也好,ADK的winpe.wim也好都是不支持。 原因是PE维护用的软件大多数都提供了x64的版本,直接用64位就好了。 这个要添加一堆系统DLL,WIM的体积增加仅80MB。 主要看自己介不介  详情 回复 发表于 2019-7-6 00:51
回复

使用道具 举报

959#
 楼主| 发表于 2019-7-6 00:51:34 | 只看该作者
令狐大虾 发表于 2019-7-6 00:34
嗯,谢谢回复。
“64位操作系统上支持运行32位应用程序 ”?这点在真实的系统不存在此需求吧?真实的系统 ...


微软默认的boot.wim也好,winre.wim也好,ADK的winpe.wim也好都是不支持。

原因是PE维护用的软件大多数都提供了x64的版本,直接用64位就好了。
这个要添加一堆系统DLL,WIM的体积增加约80MB。
主要看自己介不介意wim的体积,和启动时间了。

[72MB]WOW64支持(x64环境下可运行x86程序) (2018-12-05)

点评

谢谢解答。另,不勾选StartIsBack制作,生成的PE开始菜单点击无效。 还有一点每次重新制作,如何导入之前制作的日志直接制作?  详情 回复 发表于 2019-7-6 01:15
回复

使用道具 举报

960#
发表于 2019-7-6 01:15:13 | 只看该作者
slore 发表于 2019-7-6 00:51
微软默认的boot.wim也好,winre.wim也好,ADK的winpe.wim也好都是不支持。

原因是PE维护用的软件大多 ...

谢谢解答。另,不勾选StartIsBack制作,生成的PE开始菜单点击无效。

还有一点每次重新制作,如何导入之前制作的日志直接制作?

点评

1. WIN10PE谁的可以开启原生开始菜单? 不勾选就不添加,自然无效了。 2.保存选择目前还没有做,可以利用 预设清单 功能。 https://github.com/slorelee/wimbuilder2/issues/19  详情 回复 发表于 2019-7-6 10:20
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 01:07

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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