Java中的全局键盘记录器

我正在编写一个监视该人的鼠标和键盘的应用程序。 如果他们没有使用键盘或鼠标1分钟,它会弹出一条消息“你没有使用鼠标或键盘1分钟”和一个OK按钮。

我如何用Java做到这一点?

您需要一些C / C ++代码并调用SetWindowsHookEx此函数允许您挂钩到Windows事件并接收副本。

这个问题包含让你入门的代码: Windows中的JNA Keyboard Hook

如果您只想为您的应用程序执行此操作,那么它非常简单。 你可以简单地添加listerns,即Toolkit.getDefaultToolkit.addAwtEventListener(..)

但是对于整个系统,我担心,它不能在java中完成,你可以使用JNI。

如果您只想监视Java应用程序窗口中的活动,那么这很简单 – 您只需注册相应的事件即可。

但要监视操作系统中的所有鼠标和键盘活动,您必须挂钩到依赖于平台的API,并且需要使用JNI