在Java中跟踪OS级窗口事件

cli*_*ers 2 java user-interface awtrobot

我需要能够跟踪用户与其计算机上运行的不同应用程序进行交互的程度.对我来说似乎合情合理的是用时间戳记录窗口焦点事件的日志,这些时间戳会告诉你在一天中关注的应用程序是什么.

我们在这个应用程序中还有一些其他的事情可以在Java中直接进行.但是我没有在Java中进行任何GUI编程,因此我不确定是否可以通过awt API获取有关OS级窗口的信息.这甚至可能吗?是否有其他方法可以通过JNI执行此操作,还是需要本机应用程序才能执行此操作?

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

Tof*_*eer 5

没有使用本机代码我不认为这是可能的.


jdi*_*tal 5

焦点事件可能有效; 您可能还想考虑Windows 键盘和鼠标挂钩.使用这些方法中的任何一种,您都需要创建DLL(本机代码)并使用JNI来访问它.