Java中的Windows资源管理器上下文菜单

6
考虑一个简单的应用程序,它显示文件列表。我想在用户单击文件或文件夹时显示上下文菜单,就像在Windows资源管理器中右键单击一样(打开、重命名、编辑等)。我不想创建自己的上下文菜单,我想使用某种winapi显示Windows操作系统的上下文菜单。这只能在Windows机器上运行。
是否可以使用Swing或SWT或任何其他UI控件实现?

java.awt.Desktop类可以提供使用默认应用程序打开/编辑的功能。如需重命名/复制/删除,请参阅java.io.File类或Java 7中的新文件相关API。请注意,我猜这种能力在.NET中只需要2-3行代码。如果仅针对Windows,请考虑使用它。 - Andrew Thompson
3
Raymond Chen写了一个由11部分组成的系列文章,讲解如何使用C/C++实现此功能。这并不是一件很简单的事情。 - arx
1
跟 @arx 所说的一样,一旦你已经让 C/C++ 代码正常运行并做出了 Windows Explorer 的贡献,那么如果你想要在 Java 中加入业务逻辑,你就需要启动一个 Java 运行时,并使用一些 COM 或其他方法来进行消息传递。这会很有趣! - Edward Thomson
1
类似的问题已经在这里提出:https://dev59.com/Sk_Sa4cB1Zd3GeqP8xC3 - Jitendra Vispute
1个回答

1

这篇 MSDN 文章 解释了如何完成:

Windows Explorer 调用文件夹对象的 IShellFolder::GetUIObjectOf 来请求一个对象的接口……当用户右键单击一个对象时,Windows Explorer 请求一个 IContextMenu 接口。

这里有一个完整的 C 代码示例 链接


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接