如何创建采用动态字符串的 Windows 资源管理器命令栏工具?
我已经知道如何将我的工具添加到命令栏并在单击时执行命令。
但我需要像Organize之后的第二个工具栏。
当我单击工具的文件名时,我需要像My Tool - File name (selected.txt)或My Tool - Selected File Extension (.txt)一样。
有谁知道如何做到这一点?
如何创建采用动态字符串的 Windows 资源管理器命令栏工具?
我已经知道如何将我的工具添加到命令栏并在单击时执行命令。
但我需要像Organize之后的第二个工具栏。
当我单击工具的文件名时,我需要像My Tool - File name (selected.txt)或My Tool - Selected File Extension (.txt)一样。
有谁知道如何做到这一点?
1)创建一个外壳扩展。你的 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。