让我们假设我已创建并向Windows资源管理器右键单击菜单(上下文菜单)中添加了一个新条目,方法是添加一个指向用C++编写的.exe文件只读取并返回被点击文件的文件名。获取Windows资源管理器上下文菜单(右键单击菜单)的FilePath到Java
是否有可能将此文件名转换为已运行的Java应用程序?
我想过使用JNI,但可以从本机C++程序中调用已运行的Java应用程序的方法吗?
有没有人有另一个想法如何解决这个问题?是否有可能拥有纯粹的Java解决方案?
非常感谢。
编辑:是否可以调用已经运行的JVM的现有方法?然后,我可以创建一个C++程序来侦听右键单击并使用注册表项为contextmenu注册.exe。在C++程序中,我可以调用一个注入已经运行的JVM的dll。该DLL可以调用Java方法并将点击的文件路径提交给Java。这可能吗?
好的,我已经实现了以下功能:我创建了一个与regsit条目(contextmenu /右键单击菜单)链接的C++程序。如果用户单击某个文件,文件路径将被传输(命令行参数)到该程序。在程序内部,一个dll被加载,并且文件路径被转移到只打印文件路径的dll中的一个定义的方法。我现在想实现的是调用一个已经运行的Java程序(在dll中)的方法,并将文件路径传递给Java方法,而不是打印它。你有什么建议吗?谢谢。 – user3422749