我的目标是创建使用Java的系统监控应用。我想,当用户在Windows PC上做活动就知道了。其结果将是这样的:

8:00 - 8:15活性

9:12 - 10点29活性

12时24分 - 15点34活性

我不感兴趣的任何其它信息(这是按键,使用的应用程序等)。只有用户活动。

这是用Java甚至可能吗?我打算运行我的Java应用程序作为服务。但对于越来越事件当用户使用计算机时,我不知道从哪里开始。


[编辑]进一步澄清:我不感兴趣的细节的活性,仅用户已经移动了鼠标或按下一个键。我不在乎哪个键被按下,只要我知道,关键是在应用程序中按下某个地方。我还不在乎除键按下和鼠标移动的任何其它活动(例如,我不感兴趣如果USB钥匙插入在USB端口)。

有帮助吗?

解决方案

可以不从服务直接监视用户活动。该服务将在从用户的活动不同的窗口站运行的,因此就没有办法挂接到该活动(除了通过,将需要用C编写过滤器驱动程序)。

所以,你需要的是,在用户的桌面上运行,并挂接到键盘和鼠标活动的客户端应用。你会做,通过两次调用Windows API的和SetWindowsHookEx 使用JNI(用于低级别键盘和鼠标钩)。以监控活动的应用程序随后将需要处理的键盘和鼠标挂钩消息。

您可以通过添加到注册表的Run键的条目启动应用程序自动启动或者您有有关事件会话日志和的从它启动应用程序。然后,用户会话应用程序既可以处理该信息本身或经由管道或插座它传递给服务。

其他提示

究竟你“用户活动”是什么意思?你需要精确首先定义这个词甚至开始解决方案的思维,尤其是当你说“使用的键按下时,应用程序等。”不活动。

您可以试试这个 SWT的Win32扩展。它允许用户设置从Java键盘和鼠标挂钩窗口。

此不直接由Java平台支持的

如果您浏览一个.NET替代这将是一个容易得多。

搜索捕获在.NET

scroll top