双击打开文件提示Windows无法访问指定设备路径或文件…
解决方法:
下载一键修复工具
原理是用HKEY_LOCAL_MACHINE\SOFTWARE的权限替换HKEY_LOCAL_MACHINE\SOFTWARE\Classes的权限(两者权限原本就是一样的),然后就触发自动继承修复问题注册表。
原因:
HKCR下大部分注册表的users权限被删除导致。
补充:
HKCR是HKLM和HKCU在路径software\classes的组合视图,当两者共有某项时优先HKCU的。所以修改HKCR权限时,如果某个子项是HKLM和HKCU共有,且孙子项是HKLM独有,那么HKLM孙子项会继承HKCU子项的权限。孙子项是两者共有的项时,权限为什么不会被改?因为HKCU优先,变动权限的只是HKCU的,它继承的还是原本HKCU的权限。此时HKLM的就不在HKCR里所以不受影响。
以导致问题的HKEY_CLASSES_ROOT\PackagedCom子项权限问题为例:
PackagedCom是HKCU和HKLM共有的项,因为HKCU优先,所以HKCR\PackagedCom==HKCU\SOFTWARE\Classes\PackagedCom
HKCR\PackagedCom\ClassIndex是HKLM独有的项,修改HKCR权限时,对HKCR\PackagedCom\ClassIndex来说,它的父项是HKCR\PackagedCom即HKCU\SOFTWARE\Classes\PackagedCom,所以ClassIndex继承了HKCU的PackagedCom,而这个PackagedCom是没有users读取权限的。