我想知道用Java编写的应用程序是否可以在其他第三方应用程序(如编辑器,办公应用程序等)中监视事件(如单击文件菜单或编辑菜单)...进程间通信
我的应用程序应该在后台运行,它应该能够捕获和修改当前焦点应用程序的事件,这些应用程序可能不一定是Java应用程序。
例如:如果一个用户点击文件 - >另存为在Microsoft Word选项,然后我的应用程序应该能够接收这两个事件,也能够对这些事件的自动化每当 必要..
请帮助
在此先感谢
我想知道用Java编写的应用程序是否可以在其他第三方应用程序(如编辑器,办公应用程序等)中监视事件(如单击文件菜单或编辑菜单)...进程间通信
我的应用程序应该在后台运行,它应该能够捕获和修改当前焦点应用程序的事件,这些应用程序可能不一定是Java应用程序。
例如:如果一个用户点击文件 - >另存为在Microsoft Word选项,然后我的应用程序应该能够接收这两个事件,也能够对这些事件的自动化每当 必要..
请帮助
在此先感谢
我从来没有在Java中做到了这一点,但因为你正在处理的Win32中,我至少可以建议原生的一部分。你正在寻找的是在你的系统上挂钩其他进程。为此,你必须编写一个本地DLL。这是一种常用技术,您可以轻松找到关于它的大量信息。一个好的起点将是MSDN的Using Hooks。
一旦你将DLL注入到系统中的所有其他进程中,你必须弄清楚如何识别出你真正感兴趣的进程。你将如何做,这取决于你实际尝试的是什么做。为了更好地理解哪些消息是通过不同的动作发送的,可以使用VS附带的Spy++。
最后,你必须在你的本地DLL和你的Java程序之间建立一些通信。这是我不熟悉的部分:您将不得不使用JNI。幸运的是,JNI是一个很好的主题,你可以在这个网站找到很多建议。