使用动态谓词将自定义工具添加到Windows命令栏

时间:2014-09-21 20:06:18

标签: windows explorer commandbar

如何创建采用动态的Windows资源管理器命令栏工具 字符串?

我已经知道如何将我的工具添加到命令栏并单击执行命令。

enter image description here

但是我需要一个像组织之后的第二个工具栏。

当我点击我的工具的文件名时,我需要的是我的工具 - 文件名(selected.txt)我的工具 - 选定的文件扩展名(.txt)< / em>的

有没有人知道如何做到这一点?

1 个答案:

答案 0 :(得分:3)

1)创建一个shell扩展。您的shell扩展必须实现IInitializeCommand,IObjectWithSite,IObjectWithSelection,IExplorerCommand和IExplorerCommandState。

2)注册你的shell扩展名:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\YourCommandID]
@=YourTopCommandCaption
ExplorerCommandHandler=YourCLSID

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{5c4f28b5-f869-4e84-8e60-f11db97c5cc7}\TasksItemsSelected]
@=YourCommandID

如果TasksItemsSelected键的默认值不为空,则必须将旧字符串添加到旧字符串!例如,prev值是Windows.copy,新的必须是Windows.copy; YourCommandID

{5c4f28b5-f869-4e84-8e60-f11db97c5cc7}是FOLDERTYPEID_Generic。

3)IExplorerCommand.GetFlags必须返回ECF_HASSUBCOMMANDS或ECF_ISDROPDOWN

4)IExplorerCommand.EnumSubCommands必须返回对象实现IEnumExplorerCommand

5)IEnumExplorerCommand.Next必须返回对象实现IExplorerCommand,IObjectWithSite和IObjectWithSelection。每个对象都是子菜单的单个命令。

仅适用于Win7。