[Windows10]记一次修复注册表相关血案:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联。

今天闲得蛋疼清理了一下右键菜单,于是在之后某时刻使用Everything的“双击路径列打开目录”功能时发现异常:

[Window Title]
Everything.exe

[Content]
该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联。

[确定]

接下来的自救过程实在曲折,中间查到Everything是调用Windows API  SHOpenFolderAndSelectItems 失败导致弹这个错误(Automatically open folder again with "Open path with double click")。

我甚至还在网上找了一份可以调用这个API的代码,运行这份测试代码时出现了几乎完全一样的错误窗口。

 1 #!python3
 2 # https://stackoverflow.com/questions/20565401/how-to-access-shopenfolderandselectitems-by-ctypes
 3
 4 import win32api
 5 from win32com.shell import shell, shellcon
 6 import os
 7
 8 def launch_file_explorer(path, files):
 9     ‘‘‘
10     Given a absolute base path and names of its children (no path), open
11     up one File Explorer window with all the child files selected
12     ‘‘‘
13     folder_pidl = shell.SHILCreateFromPath(path,0)[0]
14     desktop = shell.SHGetDesktopFolder()
15     shell_folder = desktop.BindToObject(folder_pidl, None,shell.IID_IShellFolder)
16     name_to_item_mapping = dict([(desktop.GetDisplayNameOf(item, shellcon.SHGDN_FORPARSING|shellcon.SHGDN_INFOLDER), item) for item in shell_folder])
17     print("name_to_item_mapping: {0}".format(name_to_item_mapping))
18     to_show = []
19     for file in files:
20         if file in name_to_item_mapping:
21             to_show.append(name_to_item_mapping[file])
22         else:
23             raise Exception(‘File: "%s" not found in "%s"‘ % (file, path))
24
25     print("to_show: {0}".format(to_show))
26     print("call SHOpenFolderAndSelectItems()")
27     result = shell.SHOpenFolderAndSelectItems(folder_pidl, to_show, 0)
28     last_error = win32api.GetLastError()
29     print("SHOpenFolderAndSelectItems returned {0}".format(result))
30
31 p=r‘Z:\SHARE‘
32 print(os.listdir(p))
33 launch_file_explorer(p, os.listdir(p))

此时其实离最终答案已经不远了,可我却没有及时发现,折腾到后期甚至怀疑并不是注册表引起的问题,毕竟早已经尝试过把右键菜单还原回去了。

直至尝试系统还原并且失败后,五味杂陈地一边看着这个窗口一边备份文件时才忽然灵光乍现!

既然可能是操作注册表导致的故障,那么找一份OK的注册表来对比或许还有救。

于是从另一台正常的Windows 10 PC里导出 HKEY_CLASSES_ROOT\Folder ,跟这里故障机导出的文件对比:

把天杀的 none 删除后故障成功排除!

此时回想起出问题的API SHOpenFolderAndSelectItems 名字里带着 Folder ,真是蓝瘦……

原文地址:https://www.cnblogs.com/cmheia/p/9464007.html

时间: 2024-08-27 04:32:05

[Windows10]记一次修复注册表相关血案:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联。的相关文章

使用Js脚本 修改控制IE的注册表相关设置(activex等)

使用Js脚本 修改控制IE的注册表相关设置(activex等) 分类: PHP2012-12-05 18:51 2035人阅读 评论(2) 收藏 举报 脚本写法: <SCRIPT LANGUAGE="JavaScript"><!--var WshShell=new ActiveXObject("WScript.Shell"); //添加信任站点ipWshShell.RegWrite("HKCU\\Software\\Microsoft\\

该文件没有程序与之关联来执行该操作。请在控制面板的文件夹选项中创建关联

Win7在卸载某管家后,对某个软件选择系统计算机右键菜单中的管理时弹出”该文件没有与之关联的程序来执行该操作.请安装一个程序,或者,如果已安装程序,请在默认程序“控制面板中创建关联.”错误对话框. 以下是解决方式,复制代码,粘贴至文本文档,保存改为reg,导入注册表即可. Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Unknown]"AlwaysShowExt"="""QueryClass

该文件没有程序与之关联来运行该操作。请在控制面板的目录选项中创建关联 解决代码

打开控制面板-目录选项,或者打开随意一个目录,在菜单条--工具--目录选项 1.切换到文件类型选项卡,在以注冊的文件类型中找到要打开的文件类型 2.选中后点击以下的"高级"按扭 3.在弹出的对话框中的操作一栏里选择一个操作(相应该类文件右键菜单上的命令),然后点编辑 4.在弹出的对话框中点击"浏览"按扭,找到要打开该文件的程序 假设在第1步中找不到WMV,能够点击"新建"按扭 5.在弹出的对话框中输入要打开的文件类型,确定,到第1步 假设在第3步

HTML &lt;hr /&gt; 标签 在页面中创建一条水平线

一,定义和用法 <hr /> 标签在 HTML 页面中创建一条水平线. 水平分隔线(horizontal rule)可以在视觉上将文档分隔成各个部分. 二,HTML 与 XHTML 之间的差异 在 HTML 中,<hr> 标签没有结束标签. 在 XHTML 中,<hr> 必须被正确地关闭,比如 <hr />. 在 HTML 4.01 中,hr 元素的所有呈现属性均不被赞成使用. 在 XHTML 1.0 Strict DTD 中,hr 元素的所有呈现属性均不被

jsp页面中创建方法

在JSP页面中是用 <%! void function(){ } %> 这种方式可以定义函数. 如果只使用 <% //todo %> 代码块中的代码在编译时将会都被加到 sevlet 中的 excute()  方法中. jsp页面中创建方法

使用Js脚本,修改控制IE的注册表相关设置,修改打印时默认页面设置

抄一篇: 这是一篇从网络上抄来的文章.主要内容涉及到使用js修改ie的注册表设置. 可以用来达到不需要通过用户,而是通过代码的方式来修改页面设置(等同ie菜单:File\Page Setup). 这不是唯一的办法.其他还可以通过第三方插件的方式修改.可以上网用关键词“webbrowser”, 脚本写法: <SCRIPT LANGUAGE="JavaScript"><!--var WshShell=new ActiveXObject("WScript.Shel

注册表相关技术

早期的图形操作系统,如windows3.x中,对软硬件工作环境的配置是通过对扩展名为.ini的文件进行修改来完成的,但INI文件管理起来很不方便,因为每种设备或用用程序都得有自己的ini文件,并在网络上难以实现远程访问,为了克服上述这些问题,在windows95及其后续版本中,采用了一种叫做"注册表"的数据库来统一进行管理,将各种信息资源集中起来并存储各种配置信息.按照这一原则,windows各版本中都采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表. 注册表是一个庞大的数据

JSP页面中创建与使用Cookie

wordpress——在插件后台管理页面中添加javascript和ajax

最近在开发一个wordpress插件,需要在插件的后台管理页面上,添加自己写的javascript文件,以达到一些功能. 查了好几天的文档和资料,终于实现了. 这里先介绍下wordpress后台页面添加javascript的过程,再介绍添加ajax的过程. 添加javascript 首先我们需要知道wordpress插件开发的框架,然后再介绍javascript添加的步骤. 添加插件设置页面 开发插件,总需要在管理后台添加自己的插件设置页面.插件设置子页面,在这些页面中,可以设置和保存插件的一些