如何使用基于 IExecuteCommand 的 shell 扩展将某些上下文菜单选项变灰

How to gray out some context-menu options with an IExecuteCommand-based shell extension?

本文关键字:上下文 菜单 选项 扩展 何使用 IExecuteCommand shell      更新时间:2023-10-16

当使用IExecuteCommand方法实现上下文菜单shell扩展时(如本博客文章所述),给定的菜单选项如何灰显?

例如,假设 shell 扩展提供了一些菜单选项,并且根据 shell 扩展

计算的某些状态和条件,其中一些应该灰显,例如:如果用户右键单击某个文件并且 shell 扩展检测到此文件具有某些给定属性,则某些 shell 扩展上下文菜单选项应灰显。

如何使用IExecuteCommand做到这一点?

还是应该使用另一个Windows Shell COM接口来实现此目的?

我从未尝试过这个,但你应该能够在动词的键中设置CommandState­Handler(未记录?)到实现IExplorerCommandState的CLSID。

你也可以考虑实现IExplorerCommand而不是IExecuteCommand+IExplorerCommandState。

还可以根据对具有 AppliesTo 值的属性系统的查询隐藏谓词。