java - 在 Java 中跟踪操作系统级别的窗口事件

标签 java user-interface awtrobot

我需要能够跟踪用户与其计算机上运行的不同应用程序交互的程度。在我看来合乎逻辑的做法是保留带有时间戳的窗口焦点事件日志,它会告诉您一天中哪些应用程序处于焦点状态。

在这个应用程序中,我们还有一些其他事情要做,这些事情在 Java 中会很简单。但是我没有用 Java 进行任何 GUI 编程,所以我不确定是否可以通过 awt API 获取有关操作系统级窗口的信息。这可能吗?是否有另一种方法可以通过 JNI 执行此操作,或者是否需要 native 应用程序来执行此操作?

PS:我知道这个要求听起来有点邪恶,但我来这里只是为了确定这在技术上是否可行。请不要射杀信使,这不是我的主意。 :)

最佳答案

焦点事件可能有效;您可能还想考虑 Windows keyboard and mouse hooks .使用这些方法中的任何一种,您都需要创建一个 DLL( native 代码)并使用 JNI 来访问它。

关于java - 在 Java 中跟踪操作系统级别的窗口事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/604541/

相关文章:

java - 免费库,例如 Java 的 C++ 机器人类

java - 在 swing 中显示 HTML5

java - 创建后数组大小发生变化

java - zip 命令在 Java 代码中未按预期工作

Java Swing : Resizing JPanel with Image

JavaFX Click 通过叠加堆栈 Pane

java - 如何使java机器人类类型撇号'

java - robots.getColorPixel() 返回错误的颜色?

java - zk:扩展日期框和日历小部件

python - 在 python GUI 中使用坐标列表创建一条线