上周突然从某一天开始,右键菜单中的 Open with Sublime Text 突然出现了这个问题,Sublime Text 本身可以正常使用,但是用右键菜单中的 Open with Sublime Text 来打开文件的话,就会弹出“此应用无法在你的电脑上运行”这一提示。不得不事先将 Sublime Text 打开,然后将所需编辑的文件拖入打开……煞是令人苦恼。
搜索也未能发现解决方案,似乎只有在知乎上有人问过这个问题,但没有解决方案,也没有相关的英文搜索结果……更新至 Build 3114 ,并尝试重装 Sublime Text 后,也没有解决。
无奈下,在注册表中查看了一下 Open with Sublime Text 的键值,在这里发现了问题。
该键值位于
HKEY_CLASSES_ROOT\*\shell\Open with Sublime Text\command ,举个我的例子,默认安装情况下的值为
D:\Program Files\Sublime Text 3\sublime_text.exe "%1" ,考虑到可能是空格的问题(顺便参考了一下 Atom 的右键菜单键值),加引号修改为
"D:\Program Files\Sublime Text 3\sublime_text.exe" "%1" 后工作正常。
上述思路不完全正确。
考虑到之前没有出现这个问题,发现情况与 Unquoted Service Paths 现象有点相像,然后我在 D 盘目录下发现了一个名为’Program’的文件,打开后发现是某 license manager 的日志文件,问题就这么解决了。(2333 这个软件没有处理好路径中的空格……)
以 D:\Program Files\Sublime Text 3\sublime_text.exe 为例,windows 默认的解析方式是
D:\Program Files\Sublime Text 3\sublime_text.exe
D:\Program Files\Sublime Text 3\sublime_text.exe
D:\Program Files\Sublime Text 3\sublime_text.exe
空格后的内容被视为参数,若当前文件不存在则尝试下一匹配方式。
因此,删除对应的文件或者对键值路径加引号都能解决问题。但为了确保其他存在类似 Unquoted Paths 的情况的软件能够正常运行,最好删除对应的无关文件。
具体关于 Unquoted Service Paths 的内容:
http://www.commonexploits.com/unquoted-service-paths/
http://www.tenable.com/sc-report-templates/microsoft-windows-unquoted-service-path-enumeration
一个修复脚本(针对 service 的):
https://gallery.technet.microsoft.com/scriptcenter/Windows-Unquoted-Service-190f0341
我也遇到这个问题了,谢谢你的解决方案
感谢博主的方法,困扰许久的问题解决了