无忧启动论坛

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

[分享] 最新版 Win10 PE 右键新建菜单卡死的解决方法

    [复制链接]
跳转到指定楼层
#
发表于 2017-4-1 07:36:34 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 slore 于 2017-4-19 12:36 编辑

不知道从那个预览版开始在10PE下,右键新建菜单会卡死。
原因,微软改变了依赖方式,最新版依赖StateRepository服务,而这个服务除了服务启动以外,还需要些DB文件。

最终解决方案(yamingw):
1.追加StateRepository服务
system32\
  StateRepository.Core.dll;
  Windows.StateRepositoryBroker.dll;
  Windows.StateRepositoryClient.dll;
  Windows.StateRepository.dll
system32\zh-cn\Windows.StateRepository.dll.mui
  StateRepository-Deployment.srd
  StateRepository-Deployment.srd-shm
  StateRepository-Deployment.srd-wal
  StateRepository-Machine.srd
  StateRepository-Machine.srd-shm
  StateRepository-Machine.srd-wal

2.从正常系统提取:
ProgramData\Microsoft\Windows\AppRepository\StateRepository-*
到PE中。

所有文件,压缩到内核的话,增加1MB左右。

详细见30楼yamingw的回帖。
http://bbs.wuyou.net/forum.php?m ... &fromuid=166812

曲线解决方案:
2个脚本,不到 1KB,一个创建自制右键“新建菜单”,一个用来判断重名并新建文件(夹)。

微软越来越不靠谱了,15063版本依然没有解决。啥时候跟LINUX学了,遇到问题还得用户自己打补丁(还不开源 )。

作为一名码农,第一想法是写个外壳扩展,既然是微软把依赖关系搞的乱七八糟,
也许哪天就修复了白折腾,还是写写注册表,搞个批处理算了。


放到wimbuilder中可以直接给boot.wim(winre.wim)打的补丁文件:
WinXNew_Patch.zip (4.33 KB, 下载次数: 167)

文件清单:
  1. WinXNew
  2.         hiderun_x64.exe        4kb 隐藏运行程序
  3.         hiderun_x86.exe        3kb 隐藏运行程序
  4.         INIT.bat                     wimbuilder的PATCH预处理脚本,负责复制对应版本的hiderrun.exe和WinXNew.bat到System32目录
  5.         WinXNew.bat             新建批处理,判断文件存在性,自动获取新的文件名并创建的脚本
  6.         WinXNew.reg             模拟新建菜单的注册表
复制代码



WinXNew.bat:
  1. @echo off
  2. cd /d "%~2"

  3. set type=%1
  4. set folder=文件夹
  5. set .txt=文本文档
  6. set .bmp=位图图像

  7. call set filename=新建%%%type%%%
  8. set newfilename=%filename%
  9. if not [%type%]==[folder] (
  10.   set newfilename=%filename%%type%
  11. )

  12. set /a idx=1
  13. :CHECKNAME
  14. set /a idx+=1
  15. if not exist "%newfilename%" goto :CREATION
  16. call :GETNEWNAME %idx%
  17. goto :CHECKNAME


  18. :CREATION
  19. rem "%newfilename%"
  20. if [%type%]==[folder] (
  21.   mkdir "%newfilename%"
  22. ) else (
  23.   cd.>"%newfilename%"
  24. )
  25. goto :EOF

  26. :GETNEWNAME
  27. set "newfilename=%filename% (%1)"
  28. if not [%type%]==[folder] (
  29.   set "newfilename=%newfilename%%type%"
  30. )
  31. goto :EOF
复制代码


WinXNew.reg:
  1. Windows Registry Editor Version 5.00

  2. [HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew]
  3. "MUIVerb"="新建(&W)"
  4. "SubCommands"=""
  5. "NODEFAULT"=""
  6. "Position"="Bottom"
  7. "SeparatorAfter"=""

  8. [HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell]

  9. [HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\0folder]
  10. "MUIVerb"="文件夹(&F)"
  11. "icon"="shell32.dll,3"
  12. "SeparatorAfter"=""
  13. "CommandFlags"=dword:00000040

  14. [HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\0folder\command]
  15. @="hiderun.exe WinXNew.bat folder "%V""

  16. [HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\1.txt]
  17. "MUIVerb"="文本文档"
  18. "Icon"="imageres.dll,-102"

  19. [HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\1.txt\command]
  20. @="hiderun.exe WinXNew.bat .txt "%V""

  21. [HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\2.bmp]
  22. "MUIVerb"="BMP 图像"
  23. "Icon"="imageres.dll,-70"

  24. [HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\2.bmp\command]
  25. @="hiderun.exe WinXNew.bat .bmp "%V""

复制代码


FYI:
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew]
~reserved~存在,Classes不存在时就不会卡死了,出现一个空的子菜单(确认会遍历HKCR的ShellNew项目,但是不添加,不更新)
reserved~存在,Classes存在,不会卡死,但是也不出子菜单(确认不会遍历HKCR的ShellNew项目)

PS1:
缺点1:慢0.25秒(毕竟起了2个进程hiderun.exe和cmd.exe),缺点2:新建后的文件得自己F2进入改名状态。

评分

参与人数 6无忧币 +30 收起 理由
zmac2007 + 5
wimboot + 5 很给力!
nf17b + 5 赞一个!
hero8000 + 5 赞一个!
+ 5 神马都是浮云
freesoft00 + 5 微软发来贺电

查看全部评分

推荐
发表于 2017-4-19 09:05:54 | 只看该作者
slore 发表于 2017-4-18 22:09
y大就是厉害。要不你发个帖子详细说下服务的文件列表,
db文件,如果有精简的db的话最好,我1 ...

HKEY_LOCAL_MACHINE\system\ControlSet001\Services\StateRepository
system32\StateRepository.Core.dll;Windows.StateRepositoryBroker.dll;Windows.StateRepositoryClient.dll;Windows.StateRepository.dll
system32\zh-cn\Windows.StateRepository.dll.mui
X:\ProgramData\Microsoft\Windows\AppRepository\StateRepository-*

AppRepository.7z

96.78 KB, 下载次数: 170, 下载积分: 无忧币 -2

点评

15063PE 32位系统右键 “新建” 菜单可以恢复成正常系统界面,大师又立了新功!  详情 回复 发表于 2017-4-19 12:40

评分

参与人数 5无忧币 +21 收起 理由
lessic + 1 赞一个!
zmac2007 + 5
tools241 + 5 很给力!
立帮电子 + 5 很给力!
fish2006 + 5 很给力! 盼再接再厉,再创新高!

查看全部评分

回复

使用道具 举报

推荐
 楼主| 发表于 2017-4-1 10:59:12 来自手机 | 只看该作者
frg521 发表于 2017-4-1 10:42
32和64位同时有这个问题吗?我在论坛找找这最新的PE没有的话还请提供个样本

15063自带boot.wim,打开记事本,选择文件,新建就卡死了。
回复

使用道具 举报

44#
发表于 2023-2-13 08:35:14 | 只看该作者
谢谢分享……
回复

使用道具 举报

43#
发表于 2023-2-12 08:57:30 | 只看该作者
解决了我的问题,赞一个
回复

使用道具 举报

42#
发表于 2021-9-15 14:08:10 | 只看该作者
谢谢大师。
回复

使用道具 举报

41#
发表于 2017-8-23 12:57:11 | 只看该作者
赞一个!
回复

使用道具 举报

40#
发表于 2017-8-12 13:50:35 | 只看该作者
赞一个!
回复

使用道具 举报

39#
发表于 2017-8-12 13:50:17 | 只看该作者
赞一个!
回复

使用道具 举报

38#
发表于 2017-6-21 22:38:39 | 只看该作者
6666666666666666666666
作为一个拿来主义,真的好想学编程啊,
回复

使用道具 举报

37#
发表于 2017-5-1 09:58:01 | 只看该作者
大神 这个开启服务的方式  第一次右键  新建为空 要第二次才可以用 有办法解决吗
回复

使用道具 举报

36#
发表于 2017-4-28 23:07:55 | 只看该作者
本帖最后由 fkltd-123 于 2017-4-28 23:26 编辑

2个注册和楼主列表,我的pe搞定。试试
pe-sys改system

StateRepository.7z

8 KB, 下载次数: 64, 下载积分: 无忧币 -2

回复

使用道具 举报

35#
发表于 2017-4-28 22:29:20 | 只看该作者
右键正常了,但创建文件夹和记事本没有生效,是不是哪里出问题了,可否详细一点说明。

回复

使用道具 举报

34#
发表于 2017-4-19 12:40:35 | 只看该作者
yamingw 发表于 2017-4-19 09:05
HKEY_LOCAL_MACHINE\system\ControlSet001\Services\StateRepository
system32\StateRepository.Core.dl ...

15063PE 32位系统右键 “新建” 菜单可以恢复成正常系统界面,大师又立了新功!
回复

使用道具 举报

33#
 楼主| 发表于 2017-4-19 12:25:59 | 只看该作者
frg521 发表于 2017-4-18 23:49
刚刚重新试了下,VB的不可以,VC6写的可以了,前几天不知道为何没成功,EXE文件还是之前生成的,这样就不用SIHOS ...

WIN+X自己写个菜单程序就行了。无非就是那些项目啊,管理,控制面板,cmd,关机啥的。
回复

使用道具 举报

32#
发表于 2017-4-19 10:55:51 | 只看该作者
本帖最后由 hhh333 于 2017-4-19 10:57 编辑

估计还要把你这个解决方法集成了,还得更新一下。还有桌面右键失效项也要解决。Win10builder做出来的文件比那几个工具做出的相对精简一点。
回复

使用道具 举报

31#
发表于 2017-4-19 10:48:03 来自手机 | 只看该作者
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=256062&extra=page%3D3&page=362&mobile=2
回复

使用道具 举报

30#
发表于 2017-4-19 10:44:55 来自手机 | 只看该作者
红毛撄木 发布的Winxbuilder 4.12日版本,自己做内核
回复

使用道具 举报

29#
发表于 2017-4-19 10:17:01 | 只看该作者
hhh333 发表于 2017-4-19 09:53
目前含网络方便以后扩展的内核体积为174M,还有桌面那个分辨率与个性化,用以前改注册表回到老界面也失效了 ...

放个内核出来看看,要64的
回复

使用道具 举报

28#
发表于 2017-4-19 09:53:32 | 只看该作者
目前含网络方便以后扩展的内核体积为174M,还有桌面那个分辨率与个性化,用以前改注册表回到老界面也失效了。

点评

放个内核出来看看,要64的  详情 回复 发表于 2017-4-19 10:17
回复

使用道具 举报

27#
发表于 2017-4-19 09:49:12 | 只看该作者

成功了,打包后体积约增加1M
回复

使用道具 举报

26#
发表于 2017-4-19 09:35:10 | 只看该作者
slore 发表于 2017-4-18 22:09
y大就是厉害。要不你发个帖子详细说下服务的文件列表,
db文件,如果有精简的db的话最好,我1 ...

试了你的方法,批处理也比较巧,我是用PECMD来调用批处理的。不过似乎管理器的新建文件夹失效了。现在在试yamingw 的方案,这个应该算是彻底的方案
回复

使用道具 举报

25#
 楼主| 发表于 2017-4-18 23:37:13 | 只看该作者
frg521 发表于 2017-4-18 22:44
i want Win+D  , why so hard .
Ke Wu , mei you shu ru fa.

WIN+D 已经更新了完美解决方案,随便会点pecmd或者autoit就能搞出来啊。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=378303
回复

使用道具 举报

24#
 楼主| 发表于 2017-4-18 22:09:41 | 只看该作者
yamingw 发表于 2017-4-18 21:59
13楼的服务加上16楼的文件就可以了,为什么没人试一下

y大就是厉害。要不你发个帖子详细说下服务的文件列表,
db文件,如果有精简的db的话最好,我1楼就更下解决方法帖子链接。

我个人没尝试,感觉服务就5MB多,那db不大也不划算。这个功能使用频率不搞,
batch+reg的话,不用挂载install.wim就能解决,生成PE速度快。

点评

试了你的方法,批处理也比较巧,我是用PECMD来调用批处理的。不过似乎管理器的新建文件夹失效了。现在在试yamingw 的方案,这个应该算是彻底的方案  详情 回复 发表于 2017-4-19 09:35
HKEY_LOCAL_MACHINE\system\ControlSet001\Services\StateRepository system32\StateRepository.Core.dll;Windows.StateRepositoryBroker.dll;Windows.StateRepositoryClient.dll;Windows.StateRepository.dll sys  详情 回复 发表于 2017-4-19 09:05
回复

使用道具 举报

23#
发表于 2017-4-18 21:59:12 来自手机 | 只看该作者
13楼的服务加上16楼的文件就可以了,为什么没人试一下

点评

y大就是厉害。要不你发个帖子详细说下服务的文件列表, db文件,如果有精简的db的话最好,我1楼就更下解决方法帖子链接。 我个人没尝试,感觉服务就5MB多,那db不大也不划算。这个功能使用频率不搞,  详情 回复 发表于 2017-4-18 22:09
回复

使用道具 举报

22#
 楼主| 发表于 2017-4-18 21:28:40 | 只看该作者
hhh333 发表于 2017-4-18 20:04
感觉到主要是在遍历shellnew时卡死了,这个应该是explorer.exe引起的,不知换壳行不行,或者用早期版本如14 ...

调查别的问题啊,这个问题真非要解决,搞个外壳扩展就解决掉了,没意思。
回复

使用道具 举报

21#
 楼主| 发表于 2017-4-18 21:27:17 | 只看该作者
hhh333 发表于 2017-4-18 20:04
感觉到主要是在遍历shellnew时卡死了,这个应该是explorer.exe引起的,不知换壳行不行,或者用早期版本如14 ...

和explorer没关系。boot.wim启动notepad.exe打开文件,右键新建也死。遍历也已经遍历完了。
回复

使用道具 举报

20#
发表于 2017-4-18 20:04:09 | 只看该作者
感觉到主要是在遍历shellnew时卡死了,这个应该是explorer.exe引起的,不知换壳行不行,或者用早期版本如14393不知如何?

点评

调查别的问题啊,这个问题真非要解决,搞个外壳扩展就解决掉了,没意思。  详情 回复 发表于 2017-4-18 21:28
和explorer没关系。boot.wim启动notepad.exe打开文件,右键新建也死。遍历也已经遍历完了。  详情 回复 发表于 2017-4-18 21:27
回复

使用道具 举报

19#
发表于 2017-4-14 18:48:44 | 只看该作者
LZ 的方式可以
回复

使用道具 举报

18#
发表于 2017-4-13 18:59:05 | 只看该作者
没找到完美方法,没了新建就是不太方便
回复

使用道具 举报

17#
发表于 2017-4-13 15:12:01 来自手机 | 只看该作者
slore 发表于 2017-4-13 00:11
哦,那我删除掉,谁搞出来了再贴个链接算了。我看了下,自己实现new功能就100来行代码,不过批处理就够用 ...

这个新建菜单,是不是shell32.dll产生的?
回复

使用道具 举报

16#
发表于 2017-4-13 15:11:26 来自手机 | 只看该作者
yamingw 发表于 2017-4-13 11:37
ProgramData\Microsoft\Windows\AppRepository\StateRepository xxx 等4个文件,正常系统才有

这个要加上,服务才能启动?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 03:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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