2014-09-21 28 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

相關問題