【发布时间】:2014-04-08 17:03:57
【问题描述】:
假设我已经创建并添加了一个新条目到 Windows 资源管理器右键单击菜单(上下文菜单),方法是添加一个指向用 C++ 编写的 .exe 的注册表项,它只读取并返回单击的文件名文件。
是否可以将此文件名获取到已经运行的 Java 应用程序?
我曾想过使用 JNI,但是否可以从原生 C++ 程序调用已经运行的 Java 应用程序的方法?
有人知道如何解决这个问题吗?有没有可能有纯Java解决方案?
非常感谢。
编辑:是否可以调用已经运行的 JVM 的现有方法?然后我可以创建一个 C++ 程序来侦听右键单击并将该 .exe 注册到上下文菜单的注册表项中。在 C++ 程序中,我可以调用一个注入到已经运行的 JVM 中的 dll。 dll 可以调用 Java 方法并将单击的文件路径提交给 Java。有这种可能吗?
【问题讨论】:
-
好的,我实现了以下目标:我创建了一个与注册表项(上下文菜单/右键单击菜单)链接的 C++ 程序。如果用户单击文件,则文件路径(命令行参数)被传输到程序。在程序内部,加载了一个 dll 并将文件路径传输到 dll 中定义的方法,该方法只打印文件路径。我现在想要实现的是调用已经运行的 Java 程序的方法(在 dll 中)并将文件路径传输到 Java 方法而不是打印它。你有什么建议吗?谢谢。
标签: java java-native-interface contextmenu filepath