WinAPI:调用 shell 扩展提供的上下文菜单条目

发布于 2024-09-25 12:23:08 字数 195 浏览 3 评论 0原文

Dropbox 软件提供了一个 shell 扩展,可以将上下文菜单项添加到特定文件夹中的所有文件。其中之一会生成一个公共链接来查看所选文件。

在 C# 工具中,我想在没有任何用户交互的情况下调用此条目。我想实现与用户单击所选文件的上下文菜单项相同的行为。

我知道 shell 扩展是由 DLL 提供的,是否可以调用该 DLL 来实现预期的行为?

The software Dropbox provides an shell extension which adds context menu items to all files in a specific folder. One of these generates a public link to view the selected file.

In a C# tool I want to call this entry without any user interaction. I want to achieve the same behavior as if the user clicked on the context menu item of a selected file.

I know that the shell extension is provided by a DLL, is it possible to make a call to this DLL to achieve the expected behavior?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半边脸i 2024-10-02 12:23:08

Shell 扩展实现了 IContextMenu 并且它是可以在不显示菜单的情况下执行菜单命令(请参阅此博客发布有关“托管”IContextMenu 的详细信息)

一旦你有了菜单,你将调用 IContextMenu::GetCommandString 并查找特定的动词,如果 Dropbox 没有某种独特的动词,你将不得不这样做一些 hacky,要么单独通过菜单文本匹配,要么直接调用 Dropbox shell 扩展 dll(DllGetClassObject 导出)并伪造所有内容(假装是 COM 和 shell),或者如果您知道 CLSID,您至少可以从 COM 获得帮助,只需做外壳部分。

有一个名为 runmenu 的免费软件工具允许您使用 shell 菜单/IContextMenu(我确信您可以在某处找到副本)

Shell extensions implement IContextMenu and it is possible to execute menu commands without showing a menu (See this blog post for details about "hosting" IContextMenu)

Once you have the menu, you would call IContextMenu::GetCommandString and look for a specific verb, if Dropbox does not have a somewhat unique verb, you are going to have to do something hacky, either match by menu text alone, or call the Dropbox shell extension dll directly (DllGetClassObject export) and fake everything (Pretend to be COM and shell) or if you know the CLSID, you can at least get help from COM and just do the shell part.

There is a freeware tool called runmenu that allows you to play with shell menus/IContextMenu (I'm sure you can find a copy somewhere)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文