在Windows资源管理器上下文菜单中排序
如何更改上下文菜单中条目的顺序?(例如,对于目录),我需要知道Windows在显示时如何确定顺序,以便控制它。例如,我想将自定义操作放在关联菜单列表的末尾 提前感谢 我的Google fu让我想到: 因此,排序基于决策顺序中的以下元素:在Windows资源管理器上下文菜单中排序,windows,contextmenu,Windows,Contextmenu,如何更改上下文菜单中条目的顺序?(例如,对于目录),我需要知道Windows在显示时如何确定顺序,以便控制它。例如,我想将自定义操作放在关联菜单列表的末尾 提前感谢 我的Google fu让我想到: 因此,排序基于决策顺序中的以下元素: 密钥优先级(例如,txtfile,*,AFSO) shellex\ContextMenuHandler的注册表枚举顺序,静态动词的特殊情况始终位于第一位 IContextMenu实现顺序 因此,如果对位置存在任何争用,那么扩展就没有一致的方式来保证它们在菜单中的
显然,你不能对第一阶段做任何事情。阶段3仅适用于处理程序中实现的谓词。剩下的是第二阶段。你唯一能做的就是在ContextMenuHandlers下命名你的条目,这样它将首先被枚举,但没有什么能阻止其他人做同样的事情。展示了一种在上下文菜单中创建(而不是移动)项的简单方法。我设法复制了一个现有项目。然后,我将我的项目移动到上下文菜单中更高、更容易访问的位置,方法是重命名键,以“aMyItem”或“0MyItem”开头。这为我做到了。。。步骤4至7-设置“标志”
这是针对Windows 7的,对于较新版本可能也一样。它受到了其他答案的启发,一切都影响着秩序 我在解释“*”(所有文件)的条目,但特殊扩展名也是如此 我对注册表中的任何更改概不负责强> 上下文菜单中有三个部分,如(from)中所述 他们称之为:
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).
在这些部分中,位置由中的规则决定 更改“部分”内顺序的最简单方法是更改
HKCR-*-shell
或HKCR-*-shellex
下的注册表项名称。子键shell
下的所有内容将位于它们前面的shellex
下。具有CLSID
作为键名的键将作为最后一个条目,因为它们是使用顺序中的最后一个
举个例子,我遵循了一个编辑2021-04-14: MSDN链接不再有效,它将重定向到“浏览代码示例”页面。您可以在那里搜索
上下文菜单示例
,但我后面的示例似乎已被删除。最接近我跟踪的那个旧的 我遵循的方法是使用
CLSID
作为shellex
下的键名,并使用“友好名称”作为默认值。它被放置在“截面”2(顶部截面)的底部。我将密钥名称更改为类似于Asample
的名称,并将默认值改为CLSID
。现在它直接位于shell
下的条目之后
还有一些方法可以改变顺序
对于shell
下的键,可以使用字符串数据Top
或Bottom
添加值Position
。无法决定在哪个“部分”
对于shellex
下的键,值Position
无效。相反,可以使用上面的标志来决定条目在哪个“部分”
对要移动的shellext使用CLSID
。就像
{XXXXXXXX-XXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
。从键名或默认值获取它,这取决于输入的方式
在HKCR-CLSID下查找条目,该项的名称为CLSID
在找到的CLSID
下,添加一个名为flags
的值和数据为DWORD
的值,并添加上面描述的“节”号
我为这个双关语感到抱歉。我认为第二个链接()会帮助你。微软总是在捣乱他们的系统。这是存档版本:MSDN链接已经消失。谢谢@user30478,我已经更新了答案。但我找不到我遵循的老例子。