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

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

[Window Title]

Everything.exe

[Content]

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

[确定]

cfad683f30b0be1454a0198f08987ecb.png

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

e50ab3fd5eec6f4e86438e9cf5077285.png

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

#!python3

# https://stackoverflow.com/questions/20565401/how-to-access-shopenfolderandselectitems-by-ctypes

import win32api

from win32com.shell import shell, shellcon

import os

def launch_file_explorer(path, files):

'''

Given a absolute base path and names of its children (no path), open

up one File Explorer window with all the child files selected

'''

folder_pidl = shell.SHILCreateFromPath(path,0)[0]

desktop = shell.SHGetDesktopFolder()

shell_folder = desktop.BindToObject(folder_pidl, None,shell.IID_IShellFolder)

name_to_item_mapping = dict([(desktop.GetDisplayNameOf(item, shellcon.SHGDN_FORPARSING|shellcon.SHGDN_INFOLDER), item) for item in shell_folder])

print("name_to_item_mapping: {0}".format(name_to_item_mapping))

to_show = []

for file in files:

if file in name_to_item_mapping:

to_show.append(name_to_item_mapping[file])

else:

raise Exception('File: "%s" not found in "%s"' % (file, path))

print("to_show: {0}".format(to_show))

print("call SHOpenFolderAndSelectItems()")

result = shell.SHOpenFolderAndSelectItems(folder_pidl, to_show, 0)

last_error = win32api.GetLastError()

print("SHOpenFolderAndSelectItems returned {0}".format(result))

p=r'Z:\SHARE'

print(os.listdir(p))

launch_file_explorer(p, os.listdir(p))

5e1686f8aec776cb66de6a09a2e4f950.png

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

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

413a70929446b08eeed2df266c7c7286.png

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

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

21282e93c1d262c45dd478ff754bb5ba.png

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

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

Win10该文件没有与之关联的应用来执行该操作...请在"默认应用设置"页面中创建关联

问题发现:一直使用的一款软件--火柴,这两天忽然发现通过ctrl + 回车快捷键无法进入到文件所在的目录中(之前几天印象中还可以使用该功能).后来测试又发现无法打开网易云音乐中下载的音乐而进入到该音乐 ...

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

使用Js脚本 修改控制IE的注册表相关设置(activex等) 分类: PHP2012-12-05 18:51 2035人阅读 评论(2) 收藏 举报 脚本写法:

一,定义和用法


标签在 HTML 页面中创建一条水平线. 水平分隔线(horizontal rule)可以在视觉上将文档分隔成各个部分. 二,HTML 与 XHTML 之间的 ...

jsp页面中创建方法

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

&lbrack;Xcode 实际操作&rsqb;九、实用进阶-&lpar;28&rpar;在iTunes Connect&lpar;苹果商店的管理后台&rpar;中创建一个新的新的APP

目录:[Swift]Xcode实际操作 本文将演示如何在iTunes Connect(苹果商店的管理后台)中创建一个新的新的APP. 首先要做的是打开浏览器,并进入[iTunesConnect网站], ...

通过开发MSBuild &comma;引发的注册表相关知识

最近在做一个小项目,目的就是只需要点一个按钮,就把web程序发布到指定的服务器中.基本步骤就是 编译——>打包->复制包到远程服务器->解压缩.我想重点说一下解压缩,我们可以用win ...

安装Mysql的一些问题,比如Net Connect 卸载不掉&comma;注册表相关操作

我安装mysql用了一段时间后卸载了,在安装就发现安装不了了,原因就是卸载的时候Net Connetc无法卸载,我试了一个月也没有解决后来百度各种还是没有办法解决.于是就尝试自己手动卸载注册表.在“开 ...

随机推荐

WinXP&sol;Win7&sol;Win8本地用户配置文件迁移至域用户

一.概述 最近在进行加域的工作,PC大部分是Win7,使用过微软USMT 4.0和5.0工具进行迁移,但命令行报错,目前还没找到好的文章研究. 本文迁移方法很特殊,利用的是Windows默认配置文件. ...

(转)C&num; foreach 中获取索引index的方法

在C# 开发中往往使用foreach 循环语句 来代替for循环语句.foreach 比 for 更加简洁高效.           foreach :                 foreach ...

Java提高篇(三四)-----fail-fast机制

在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证.快速失 ...

enbale blakboxing

chrome://flags/#enable-devtools-experiments

第4章 类型基础 -- 4&period;1 所有类型都从System&period;Object派生

4.1 所有类型都从System.Object派生 “运行时”要求每个类型最终都从System.Object类型派生. 由于所有类型最终都从System.Object派生,所以每个类型的每个对象都保证 ...

java:字符串的&OpenCurlyDoubleQuote;&plus;”运算

今天在一篇博客里,意外的看到了一段关于java中对字符串的“+”运算的处理(博客原文:http://blog.csdn.net/yirentianran/article/details/2871417 ...

Python爬虫入门:URLError异常处理

大家好,本节在这里主要说的是URLError还有HTTPError,以及对它们的一些处理. 1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的 ...

Game Engine Architecture 5

[Game Engine Architecture 5] 1.Memory Ordering Semantics These mysterious and vexing problems can on ...

python迭代器的说明

data = [randint(0,20) for _ in xrange(30)]表示30个随机生成的0-20随机数其中for _ in xrange(30)表示循环30次. from random ...

转载 Python中关键字global与nonlocal的区别

转载自CSDN 雁丘1990, 原文地址: https://blog.csdn.net/xcyansun/article/details/79672634 这篇文章写的很赞, 条理清晰, 分析循序渐进 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值