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 资源管理器 - 删除上下文菜单中的条目的主要内容,如果未能解决你的问题,请参考以下文章

我的鼠标右键不弹出菜单了,怎么回事?

集成到 Windows 资源管理器上下文菜单中

如何将上下文菜单添加到 Java 应用程序的 Windows 资源管理器?

如何在 Windows 资源管理器中添加“在此处打开 git-bash ...”上下文菜单?

如何在 Windows 11 的 Windows 资源管理器中添加“Git Bash Here”上下文菜单选项?

如何使用 C 或 C++ 将选项添加到 Windows 资源管理器上下文菜单?