当我在安装了不同程序的不同计算机上工作时,我经常必须Open with
在上下文菜单中搜索对话框,因为上下文菜单似乎是按字母顺序排列的,因此,许多程序可能会 - 并且将会 - 位于它前面或后面。
所以我想移动Open with
到列表顶部,如下所示:
由于我不太喜欢第三方程序弄乱我的注册表并附带各种 OpenCandy 和类似的东西,所以我想以老式的手动方式来完成这项工作 - 但我很快就遇到了一个问题。
通过谷歌搜索,我发现这个 SO 问题称为“Windows 资源管理器上下文菜单中的顺序”这又让我这是来自 MSDN 的相当老的博文说明:
[...] 排序依据以下元素的决策顺序:
密钥优先级(例如 txtfile、*、AFSO)
注册表枚举顺序,
shellex\contextmenuhandlers
静态动词的特殊情况始终是第一个
IContextMenu
实施顺序
我能想到的唯一解决方案非常不优雅:重命名Open with
为类似1: Open with
或 的名称0pen with
。我尝试过,但不幸的是,这会Open with
完全删除(如:它不再位于上下文菜单中)。
我在 SO 问题中读到的另一个解决方案是将其放置Open with
在上下文菜单的另一个部分中。我也想避免这样做,因为它只会有一点帮助,因为程序的数量仍然会影响位置。
有没有办法Open with
通过手动方式到达顶部,例如通过 Regedit 或 PowerShell?
笔记:对我来说,它发生在之前还是之后并不重要Open
。
答案1
除了在上下文菜单弹出窗口中更改常规位置外,您Open with
还可以HKCR\*\shellex\contextmenuhandlers
添加下一个其他Open with
下HKCR\*\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}"
结果(以文件为例.png
):
恢复更改,阅读并关注删除注册表项和值
要删除带有文件的注册表项,请在文件前面
.reg
添加连字符 ( )-
注册表路径在.reg
文件中。
在这种情况下,要从注册表项.OpenWith
中删除子项HKEY_CLASSES_ROOT\*\shell
,请使用:
Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\*\shell\.OpenWith]