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