|
1
9
获取shell上下文菜单的关键是使用
看看这篇好文章
更新
对于Delphi示例,您可以看到
JclShell
绝地JCL的部队(检查
|
|
|
2
7
简短的回答 尝试 ShellBrowser Components 来自JAM软件。它们有一个组件,可以让您在tpopupmenu中混合使用自己的命令显示资源管理器的上下文菜单。 冗长的回答 获取资源管理器菜单、查询其所有属性,并将它们托管在您自己的菜单中是可能的,但是您确实应该能够轻松地阅读/编写低级的win32代码,并且C的工作知识将有所帮助。您还需要注意一些问题(见下文)。我强烈推荐阅读陈瑞蒙的 How to host an IContextMenu 一系列的技术细节。 这个 更容易的 方法是先查询icontextmenu接口,然后查询hmenu,然后使用trackpopupmenu让Windows显示菜单,最后调用invokecommand。 下面的一些代码没有经过测试,或者已经根据我们使用的代码进行了修改,因此请自行承担风险。 以下是你如何获得 IContextMenu ,对于基本文件夹中的一组文件:
要获得需要调用的实际菜单项 IContextMenu.QueryContextMenu . 您可以使用 DestroyMenu .
以下是您实际调用用户从菜单中选择的命令的方式:
现在您可以使用 GetMenuItemInfo 函数获取标题、位图等,但更简单的方法是调用 TrackPopupMenu 让Windows显示弹出菜单。看起来像这样:
如果您真的想提取菜单项/标题并将它们添加到您自己的弹出菜单中(我们使用工具栏2000并执行此操作),那么您将遇到的其他大问题如下:
|
|
3
0
以下是“发送到…”后面的操作系统逻辑的示例。|“邮件收件人”上下文菜单项可用于从Delphi应用程序打开默认邮件客户端,显示附加了已传递(选定)文件的新邮件: |
|
zeus · 如何在调整数组大小后保持指向动态数组的指针有效? 1 年前 |
|
|
SignalOne · 德尔福(FMX)循环参考 1 年前 |
|
|
Sascha Ott · 如何从线程调用线程的方法? 1 年前 |
|
|
user1580348 · 问题:如何在上次最小化后还原应用程序? 1 年前 |
|
tua · Delphi的TLinkLabel坏了吗? 1 年前 |
|
|
Frank.Wu · delphi:RGB到HSL不正确 1 年前 |