在没有附加软件的情况下在 Win10 的上下文菜单顶部获得“打开方式”?

flo*_*ilo 5 windows-registry windows-explorer context-menu windows-10

当我在安装了不同程序的不同计算机上工作时,我经常需要Open with在上下文菜单中搜索-dialog,因为上下文菜单似乎是按字母顺序排序的,因此,许多程序可能 - 而且将会 - 位于前面或后面它。

所以我想移到Open with列表的顶部,如下所示:

上下文菜单示意图

因为我真的不喜欢那些弄乱我的注册表并带有各种 OpenCandy 之类的第三方程序,所以我想以老式的手动方式执行此操作 - 我立即遇到了问题。

一些谷歌搜索让我找到了这个名为“在 Windows 资源管理器上下文菜单中订购”的问题,这反过来又让我找到了这个 - 相当老 - 来自 MSDN 的博客文章,指出:

[...] 排序基于决策顺序中的以下元素:

  1. 密钥优先级(例如,txtfile、*、AFSO)

  2. 注册表枚举顺序,shellex\contextmenuhandlers静态动词的特殊情况总是在第一位

  3. IContextMenu 实施顺序


我能想到的唯一解决方案是非常不优雅:重命名Open with1: Open with0pen with. 我试过了,但不幸的是,这Open with完全删除了(如:它不再在上下文菜单中)。

我在 SO-question 中读到的另一个解决方案是放置Open with在上下文菜单的另一部分中。我也想避免这种情况,因为它只会略有帮助,因为程序的数量仍然会影响位置。


有没有什么办法可以Open with通过手动方式(例如通过 Regedit 或 PowerShell)获得领先地位?

注意:对我来说,它出现在 之前还是之后并不重要Open

Jos*_*efZ 4

您可以在弹出窗口中添加Open with下一个其他项并将其位置强制到弹出窗口的顶部,而不是在上下文菜单弹出窗口中更改常规项的位置,如下所示:HKCR\*\shellex\contextmenuhandlersOpen withHKCR\*\shell

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\.OpenWith]
"Position"="Top"

[HKEY_CLASSES_ROOT\*\shell\.OpenWith\command]
@="{09799AFB-AD67-11d1-ABCD-00C04FC30936}"
Run Code Online (Sandbox Code Playgroud)

结果(带有文件的示例.png):

打开用

要恢复更改,请阅读并遵循删除注册表项和值

要删除带有文件的注册表项.reg,请在文件中的RegistryPath-前面放置一个连字符( ) 。.reg

.OpenWith在这种情况下,要从注册表项中删除子项HKEY_CLASSES_ROOT\*\shell,请使用:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\.OpenWith]
Run Code Online (Sandbox Code Playgroud)