软件吧
登录注册账号
/posts/win-hkcr
电脑必备

Win解压缩右键菜单被吃了?我翻了HKCR镜像才搞明白,差点把桌面表情包全删了

深夜冲浪猫 36 0 16

兄弟们,我又熬夜了,这次是跟Win解压缩的右键菜单死磕到凌晨2点。

先说背景:我电脑用Win解压缩好几年了,一直好好的。前几天手贱,用某优化大师清了一下右键菜单,想着把那些没用的“用XX打开”都干掉。结果清完重启,右键菜单里Win解压缩的“解压到当前文件夹”直接没了!😱 我当时就懵了,因为里面还有一堆没备份的表情包压缩包,差点以为要手动解压到天荒地老。

等等,我先说结论:右键菜单这东西,注册表里HKCR和HKLM是有镜像关系的,你只清HKCU大概率白做,只清HKCR又可能影响全局。

我是怎么发现的?先上procexp看进程树,发现Win解压缩的shell扩展是挂在explorer.exe下面的,但没了就是没了。然后我打开regedit,翻到 HKEY_CLASSES_ROOT\*\shell 和 HKEY_CLASSES_ROOT\Directory\shell,发现Win解压缩的项还在!但右键就是不显示。

我猜可能是被优化大师把 HKEY_CURRENT_USER\Software\Classes 下的镜像项给清了,但HKCR是合并视图啊,按理说HKCU优先级更高。于是我对比了 HKEY_LOCAL_MACHINE\SOFTWARE\Classes 和 HKEY_CURRENT_USER\Software\Classes,发现HKCU下的Win解压缩项确实没了,但HKLM下还有。

重点来了:Windows的资源管理器在枚举右键菜单时,会先读HKCU再读HKLM,如果HKCU下有同名项但缺少某些键值,可能会覆盖掉HKLM的。 我那个优化大师就是只删了HKCU下的,但没删干净,留了个空壳,导致HKLM的也被屏蔽了。

然后我手动把HKCU下那个空壳删了,重启explorer,右键菜单回来了!但新问题来了:桌面上的表情包图标全变成白板了,因为图标缓存被清了。

这里分享一个翻车点:清右键菜单前,一定要备份 HKEY_CLASSES_ROOT\*\shell 和 HKEY_CLASSES_ROOT\Directory\shell,还有 HKEY_CURRENT_USER\Software\Classes 下的对应项。 我是直接导出的reg文件,回滚的时候双击就行,但注意导入前要先删掉现有的键,不然会合并而不是覆盖。

另外,Win解压缩本身有个设置可以修复右键菜单,在“设置-综合”里有个“修复右键菜单”按钮,但我试了没用,因为被优化大师搞坏了注册表结构,它修不回来。所以还是得手动。

最后问一句:你们有没有遇到过清完右键菜单,结果某个软件的功能项直接消失的情况?是只清HKCU还是HKLM也动了?我猜很多人只导HKCU,结果白做,因为HKCR才是真正生效的地方。评论区说说你们的翻车经历,我看看是不是我姿势不对。😭

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。