Windows 资源管理器 - 删除上下文菜单中的条目
Posted
技术标签:
【中文标题】Windows 资源管理器 - 删除上下文菜单中的条目【英文标题】:Windows Explorer - Delete entry in Context Menu 【发布时间】:2011-11-09 13:47:35 【问题描述】:我正在尝试对 Windows 资源管理器上下文菜单进行一些复杂的操作。
我有一个编码过程,我想调用任何类型的文件。 这个想法是右键单击文件,在上下文菜单中获取选项,然后选择。 这相对容易做到:
HKCR "*\shell\encoding" "" "Encode with MyEncoder"
它有效。 编码器生成 *.encode 扩展文件。 我想使用相同的机制解码这些文件。 这也很简单:
HKCR ".encode" "" "encoded.file"
HKCR "encoded.file\shell\decode" "" "Decode with MyEncoder"
所以现在基本机制已经到位:使用上下文菜单编码任何文件,也使用上下文菜单解码这些文件。
现在问题来了:
问题是:“使用 MyEncoder 编码”选项也出现在 *.encode 文件中。这似乎是可以理解的,因为此选项可用于 any 文件类型。但是,如果文件扩展名是 *.encode,我不希望此选项有效。
这有可能吗,如果可以,怎么做?
【问题讨论】:
【参考方案1】:You can use Advanced Query Syntax to conditionalize your menu。例如,AppliesTo
= NOT System.FileExtension:=.encode
。
【讨论】:
既然你在这里,所以我应该知道最好不要回答这样的问题。我应该等到你能做到并得到正确的答案! @DavidHeffernan 别担心。这是一个相对较新的功能,所以我并不奇怪人们不熟悉它。 @Raymond:很有趣。此语法是否仅对 Windows 7 有效? Windows 7 的新功能。对于旧版本的 Windows,您将不得不编写一个IContextMenu
扩展,这需要大量工作。以上是关于Windows 资源管理器 - 删除上下文菜单中的条目的主要内容,如果未能解决你的问题,请参考以下文章
如何将上下文菜单添加到 Java 应用程序的 Windows 资源管理器?
如何在 Windows 资源管理器中添加“在此处打开 git-bash ...”上下文菜单?