【问题标题】:Windows Explorer: How to create additional button?Windows 资源管理器:如何创建附加按钮?
【发布时间】:2010-01-29 11:18:02
【问题描述】:
Windows 7 Explorer 使用一个新的浅蓝色栏,带有“组织”、“共享”、“新建文件夹”等按钮。
如何创建新按钮?我是否需要为 explorer.exe 创建一个插件,如果是,我该怎么做(使用 Visual Studio .NET)?
或者它是一个简单的注册表项,我必须设置它指向 exe 或 bat?
提前致谢并致以最诚挚的问候
【问题讨论】:
标签:
visual-studio
windows-7
plugins
windows-explorer
【解决方案1】:
这是一个注册表项,但不是那么简单。您必须执行多个步骤才能添加一个按钮。
您可能已经注意到 Win7 资源管理器会调整其工具栏以匹配正在显示的内容。例如,控制面板文件夹显示的按钮与文档或音乐库文件夹的按钮不同。您可以在注册表项下找到大量不同文件夹类型的列表
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes
单击此处显示的每个 UID 以找出它的文件夹类型。例如,在这里您可以看到通用库类型中的文件夹条目:
因此,您要做的第一件事就是找到要为其添加自己的按钮的文件夹类型。
找到正确的 UID 后,您可能必须拥有这些密钥的所有权。否则您将无法修改它们:
右键单击该键并选择权限...
- 点击高级按钮。
- 单击“所有者”选项卡。
- 在将所有者更改为:选择管理员。
单击应用并验证“当前所有者”是否设置为管理员。
单击“确定”保存更改。
- 返回“权限”对话框,单击“管理员”,然后单击(检查)完全控制
- 单击“确定”保存设置并关闭对话框。
下一步是为您自己的按钮创建必要的键和值:
- 添加一个新密钥,
TasksItemsSelected
- 添加一个新密钥,
TasksItemsSelected\0
- 为您的命令创建一个新的 GUID(使用 guidgen.exe)。
- 添加键
TasksItemsSelected\0\<yourguid>,然后添加字符串Title 和InfoTip 并赋予它们适当的值。您也可以在此处设置图标,使用字符串Icon,其值指向图标文件。
- 添加密钥
TasksItemsSelected\0\<yourguid>\shell\InvokeTask\command
- 作为命令键的默认值,输入要执行的命令。
现在您的注册表项应如下所示:
命令运行时,至少会收到两个参数值。
%1 -- The path of the folder that was being displayed
%2 -- The pathname of the file that was selected.
如果在点击mycommand按钮之前选择了多个文件,那么后面的文件名会在后面的参数中。
最后但并非最不重要的一点是:如果您想在没有选择任何内容的情况下添加自己的按钮,请按照上述所有操作,但使用注册表项 TasksNoItemsSelected 而不是 TasksItemsSelected