[英]Add a separator in the Windows Explorer context menu (not in a submenu)
[英]Order in the Windows Explorer context menu
如何更改上下文菜单中条目的顺序?(例如,对于目录)我需要知道 Windows 在显示时如何确定顺序,以便我可以控制它。 例如,我想将自定义操作放在上下文菜单列表的末尾
预先感谢!
我的 Google-fu 引导我这样做:
所以排序是基于以下元素的决策顺序:
- 关键优先级(例如,txtfile、*、AFSO)
- shellex\contextmenuhandlers 的注册表枚举顺序,其中 static 动词的特殊情况总是在前
- IContextMenu 实现顺序
因此,如果对 position 有任何争用,则扩展没有一致的方法来保证其在菜单中的相对 position。
显然你不能对阶段 1 做任何事情。阶段 3 只适用于在你的处理程序中实现的动词。 这留下了第 2 阶段。您唯一能做的就是在 ContextMenuHandlers 下命名您的条目,以便首先枚举它,但没有什么能阻止其他人做同样的事情。
这适用于 Windows 7,可能与较新版本相同。 它受到其他答案的启发,一切都在影响顺序。
我正在解释“*”(所有文件)的条目,但对于特殊扩展名也是如此。
我对注册表中的任何更改不承担任何责任!
上下文菜单中有三个部分,如如何更改上下文菜单中的选项顺序中所述(来自@Anonymous 的回答)
他们称他们为:
2 - Default menu position (at the top).
1 - Send to, copy to folder and move to folder menu part (in the middle).
0 - Rename menu part (at the bottom).
在这些部分中,position由@Luke 回答的规则决定
在“部分”中更改顺序的最简单方法是更改HKCR-*-shell
或HKCR-*-shellex
下的注册表项的名称。 子项shell
下的所有内容都将在shellex
下。 以CLSID
作为键名的键将作为最后一个条目,因为它们在使用顺序中排在最后。
例如,我正在按照MSDN 中的示例构建上下文菜单处理程序
编辑 2021-04-14: MSDN 链接不再有效,它重定向到“浏览代码示例”页面。 您可以在那里搜索Context menu sample
,但我关注的那个似乎已被删除。
最接近我关注的旧的可能是这个
我遵循的方法是使用CLSID
作为shellex
下键的名称,并使用“友好名称”作为默认值。 它被放置在“部分”2(顶部)的底部。 我将键名更改为Asample
之类的名称,并将默认值更改为CLSID
。 现在它直接在shell
下的条目之后。
还有一些改变顺序的方法。
对于shell
下的键,您可以将值Position
与字符串数据Top
或Bottom
添加。 无法决定在哪个“部分”。
对于shellex
下的键,值Position
无效。 相反,可以决定条目将在哪个“部分”使用flags
, 如上面的链接中所述。
- 为要移动的 shellext 使用
CLSID
。 就像是
{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
。 从键名或默认值中获取它,这取决于条目是如何完成的。- 找到 HKCR-CLSID 下的条目,该键具有
CLSID
的名称。- 在找到的
CLSID
下添加一个带有名称flags
和数据DWORD
的值,上面描述的“节”号。
此问答展示了一种在上下文菜单中创建(而不是移动)项目的简单方法。 我设法复制了一个现有项目。 然后我将我的项目移动到上下文菜单中更高且更易于访问的 position,方法是将密钥重命名为以“aMyItem”或“0MyItem”开头。
这是为我做的......步骤4到7 - 设置“标志” http://techoqueries.blogspot.de/2012/08/how-to-change-order-of-options-in.html
我一直在试图找到一种重新订购东西的方法,这让我很恼火,日常使用选项被推到最后,当你可能会在蓝月亮中使用一次的晦涩实用程序填满列表的顶部时。
我找到了一种懒惰的方法来做到这一点,使用一个名为“Windows 10 管理器” Windows 10 管理器的小实用程序 package - 它只需几英镑,但比注册表黑客攻击容易得多。 它不能做所有事情,但它确实让你至少可以将项目添加到顶部 - 并且还可以压制那些不经询问就安装在那里的厚脸皮的项目。
如您所见,它实际上是复制了一些条目而不是移动它们,但没关系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.