Java 进程间通信

Java 进程间通信,java,windows,events,hook,interprocess,Java,Windows,Events,Hook,Interprocess,我想知道我用java编写的应用程序是否可以监视其他第三方应用程序(如编辑器、office应用程序等)中的事件(如单击文件菜单或编辑菜单) 我的应用程序应该在后台运行,并且应该能够捕获和更改当前关注的应用程序的事件,这些应用程序可能不一定是java应用程序 例如:如果用户单击microsoft word中的“文件-->另存为”选项,则我的应用程序应该能够接收这两个事件,并且无论何时都能够自动执行这些事件 必要的 请帮忙 提前感谢我从来没有在Java中这样做过,但既然您使用的是Win32,我至少可以

我想知道我用java编写的应用程序是否可以监视其他第三方应用程序(如编辑器、office应用程序等)中的事件(如单击文件菜单或编辑菜单)

我的应用程序应该在后台运行,并且应该能够捕获和更改当前关注的应用程序的事件,这些应用程序可能不一定是java应用程序

例如:如果用户单击microsoft word中的“文件-->另存为”选项,则我的应用程序应该能够接收这两个事件,并且无论何时都能够自动执行这些事件 必要的

请帮忙


提前感谢

我从来没有在Java中这样做过,但既然您使用的是Win32,我至少可以建议您使用本机部分。您正在寻找的是在您的系统上挂接其他进程。为此,您必须编写一个本机DLL。这是一种常见的技术,你可以很容易地找到很多关于它的信息。MSDN是一个很好的起点

一旦您将DLL注入到系统中的所有其他进程中,您就必须弄清楚如何识别您真正感兴趣的进程。你会怎么做取决于你到底想做什么。为了更好地了解在不同操作上发送的消息,您可以使用VS附带的


最后,您必须在本机DLL和Java程序之间设置一些通信。这是我不熟悉的部分:您将不得不使用。幸运的是,JNI是一个很好的话题,你可以在这个网站上找到很多建议

我从来没有在Java中这样做过,但既然您使用的是Win32,我至少可以建议您使用本机部分。您正在寻找的是在您的系统上挂接其他进程。为此,您必须编写一个本机DLL。这是一种常见的技术,你可以很容易地找到很多关于它的信息。MSDN是一个很好的起点

一旦您将DLL注入到系统中的所有其他进程中,您就必须弄清楚如何识别您真正感兴趣的进程。你会怎么做取决于你到底想做什么。为了更好地了解在不同操作上发送的消息,您可以使用VS附带的

最后,您必须在本机DLL和Java程序之间设置一些通信。这是我不熟悉的部分:您将不得不使用。幸运的是,JNI是一个很好的话题,你可以在这个网站上找到很多建议