2010-09-30 55 views
0

軟件Dropbox提供了一個外殼擴展,它將上下文菜單項添加到特定文件夾中的所有文件。其中一個生成公共鏈接來查看選定的文件。WinAPI:外殼擴展提供的調用上下文菜單條目

在C#工具中,我想在沒有任何用戶交互的情況下調用此條目。我想要實現與用戶單擊選定文件的上下文菜單項相同的行爲。

我知道shell擴展是由DLL提供的,是否可以調用這個DLL來實現預期的行爲?

回答

1

外殼擴展實現IContextMenu並且可以不顯示菜單(見this blog post,詳細瞭解「託管」 IContextMenu)執行菜單命令

一旦你的菜單,你會調用IContextMenu :: GetCommandString,並期待對於一個特定的動詞,如果Dropbox沒有一個獨特的動詞,你將不得不做一些hacky操作,或者單獨通過菜單文本進行匹配,或者直接調用Dropbox shell擴展dll(DllGetClassObject export)並假裝一切(假裝是COM和shell),或者如果你知道CLSID,你至少可以從COM獲得幫助,而只需執行shell部分。

有一個叫runmenu免費的工具,讓您與殼牌菜單播放/ IContextMenu(我敢肯定,你可以找個地方複印件)

+0

非常感謝您的回答!我會看看它。 – 2010-10-01 08:57:34