2014-09-21 92 views
0

如何创建采用动态 字符串的Windows资源管理器命令栏工具?使用Dynamic Verb将自定义工具添加到Windows命令栏

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

enter image description here

但我需要后,如第二个工具栏组织

我需要的,当我点击我的工具的文件名是这样我的工具 - 文件名(selected.txt)我的工具 - 选定的文件扩展名文件(.txt)

有没有人有关于如何做到这一点的想法?

+0

此外,还必须有一种方法,如何在那里添加图标 – GeekUser 2014-10-11 10:13:52

回答

2

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

2)注册您的外壳扩展:

[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。

+0

非常感谢! - 是否有显示和按钮图标的方法?提前致谢! – GeekUser 2014-10-10 21:10:48

+0

有趣的是:Iobit卸载程序外壳扩展不注册在CommandStore和FolderTypes ..这就是为什么我虽然它是一个黑客... – GeekUser 2014-10-10 21:17:37

+0

@GeekUser IExplorerCommand有方法GetIcon,但在我的实验中,它从来没有被称为。 – 2014-10-11 06:29:53