• 右击图片出现Microsoft WinRT Storage API,点击提示找不到元素的解决思路


    懒人直接看文章最下面。

    网上看过很多次这个问题,暂时没搜到有人发有效的解决方法。
    在这里插入图片描述
    在这里插入图片描述

    刚好昨天一位网友私信我这问题,由于对方拒绝远程,所以只好一步步指导用procmon分析问题,下面就发下解决思路。

    • 首先右键菜单里出现的项是“Microsoft WinRT Storage API”:
      在这里插入图片描述
    • 点击“Microsoft WinRT Storage API”这项会提示“找不到元素”或找不到文件。一般来说遇到这个问题,先注册表搜索下这个字符串,不过很多人说搜索不到。
      在这里插入图片描述
    • 搜索不到的估计只在HKEY_LOCAL_MACHINE注册表里搜索,而这个字符串出现的位置是下面两个注册表:
    HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
    HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
    
    • 1
    • 2

    在这里插入图片描述

    C:\Windows\System32\windows.storage.dll.FriendlyAppName的值是Microsoft WinRT Storage API

    • 尝试修改上面注册表里的“Microsoft WinRT Storage API”字符串,可以发现右键菜单也跟着变了。
      在这里插入图片描述

    • 可以确定跟这个注册表项有关。已知在桌面右击文件弹出菜单这些操作都是explorer.exe桌面进程完成的,那么想解决这个问题,就需要了解桌面进程在读取了什么注册表后,转去读取这个注册表项。

    • 下面用procmon工具,监控进程explorer.exe在右击图片打开方式这些操作时产生的日志。打开procmon软件,过滤器,过滤器,进程名称 是 explorer.exe 然后 包括。
      在这里插入图片描述
      设置好过滤器后点添加,确定。然后编辑,清除显示(Ctrl+X) 。马上右击图片,打开方式,看到字符串“Microsoft WinRT Storage API”后,就点上图第三个图标停止捕获(Ctrl+E),这样就收集好相关日志了。

    • 点文件,保存(Ctrl+S),然后再文件,打开procmon目录里保存的日志Logfile。(这样的做法可以在下面重置过滤器时不显示多余的内容)
      在这里插入图片描述

    • 上面注册表里我们看到了FriendlyAppName这个字符串,了解注册表的人可能知道这个什么意思,所以再设置下procmon过滤器,路径 包含 FriendlyAppName 然后 包括。
      在这里插入图片描述
      在这里插入图片描述
      上图日志中最后一个就是“Microsoft WinRT Storage API”,那它上一个很可能就是跟问题有关的注册表项。

    HKCU\Software\Classes\AppXcdh38jxzbcberv50vxg2tg4k84kfnewn\Shell\open\
    
    • 1
    • 上面只是猜测有关,接下来选中最后一个日志,点过滤器,重置过滤器(Ctrl+R)。
      在这里插入图片描述
      选中日志往上翻,找到大致的流程:
    HKCU\Software\Classes\AppXcdh38jxzbcberv50vxg2tg4k84kfnewn\Shell\open\command\DelegateExecute
    
    
    • 1
    • 2

    在这里插入图片描述
    2.

    HKCR\CLSID\{4ED3A719-CEA8-4BD9-910D-E252F997AFC2}\InProcServer32
    
    • 1

    在这里插入图片描述
    3.

    C:\Windows\System32\windows.storage.dll
    
    • 1

    在这里插入图片描述
    最后就是MuiCache里的字符串。流程清楚了,那么删除第1个步骤里的“DelegateExecute”是不是就能解决问题了?
    在这里插入图片描述
    对比了下正常注册表,正常情况下是没有“DelegateExecute”这项的,那么测试下右击导出command后再删除“DelegateExecute”?(注意:不懂注册表的,在删除注册表前都应该导出备份!)

    经测试,删除HKCU\Software\Classes\AppXcdh38jxzbcberv50vxg2tg4k84kfnewn\Shell\open\command右侧的“DelegateExecute”,可以解决右击图片打开方式出现的“Microsoft WinRT Storage API”。

  • 相关阅读:
    Unity记录5.6-地图-天空地面及地底的地形
    鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
    sql4(Leetcode1148文章浏览1)
    `算法知识` 哈希
    PowerDesigner 与 mysql 同步数据
    设计模式——单例模式
    Excel工作表控件实现滚动按钮效果
    【题解】石子染色 [背包DP]
    <C++>详解list类
    C语言暑假学习刷题——Day5
  • 原文地址:https://blog.csdn.net/hfhbutn/article/details/126296531