加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何使用在Windows上运行的Java服务检测用户活动?

发布时间:2020-12-14 02:19:37 所属栏目:Windows 来源:网络整理
导读:我的目标是使用 Java创建系统监视应用程序.我想知道用户何时在Windows PC上进行活动.结果将是这样的: 8:00 – 8:15活动 9:12 – 10:29活动 12:24 – 15:34活动 我对任何其他信息(按下哪个键,使用应用程序等)不感兴趣.只有用户活动. 这在Java中甚至可能吗?
我的目标是使用 Java创建系统监视应用程序.我想知道用户何时在Windows PC上进行活动.结果将是这样的:

8:00 – 8:15活动

9:12 – 10:29活动

12:24 – 15:34活动

我对任何其他信息(按下哪个键,使用应用程序等)不感兴趣.只有用户活动.

这在Java中甚至可能吗?我计划将我的java应用程序作为服务运行.但至于在用户使用计算机时获取事件,我不知道从哪里开始.

[编辑]进一步澄清:我对活动的细节不感兴趣,只是用户移动了鼠标或按了一个键.我不关心按下哪个键,只要我知道某个键在某个应用程序中被按下了.除了按键和鼠标移动之外,我也不关心任何其他活动(例如,如果在USB端口中插入USB密钥,我不感兴趣).

解决方法

您无法直接从服务监控用户活动.该服务将在与用户活动不同的窗口站中运行,因此无法挂钩该活动(除非通过需要用C编写的过滤器驱动程序).

因此,您将需要一个在用户桌面上运行的客户端应用程序,并挂钩键盘和鼠标活动.您可以通过使用JNI两次调用Windows API SetWindowsHookEx(用于低级键盘和鼠标挂钩)来实现.要监视活动,应用程序将需要处理消息的键盘和鼠标挂钩.

您可以通过向注册表的Run键添加条目来启动应用程序作为自动启动,也可以让您的服务监视器用于事件的会话日志和launch the application.然后,用户会话应用程序可以自己处理信息,也可以通过管道或套接字将其传递给服务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读