单击跟踪Windows应用程序

RMD*_*RMD 7 windows hook tracking usage-statistics setwindowshookex

我很有兴趣收集一个我没写过但无法控制的应用程序的使用指标.这是在Windows上运行的应用程序.

我的计划是为鼠标和键盘事件注册一个全局窗口挂钩,并为具有预定标题或其他可识别属性的窗口记录这些事件.

使用这些数据,我希望能够确定用户如何使用相关应用程序.他们点击什么按钮以及什么时候,以及常见的工作流程.等等.

对这个想法的任何想法?是否有第三方产品或库,将有助于该解决方案,也没有要求现有应用程序的修改?

Adr*_*thy 3

我认为(希望)这是出于可用性实验之类的目的,而不是出于邪恶目的。

您概述的方法似乎是合理的。全局hook的缺点是:

  1. 这对每个进程来说都是一个负担,因为你的钩子代码将被注入到每个进程中。
  2. 它可能会遇到安全障碍。例如,如果您从中等完整性级别的应用程序中挂钩,我认为您无法挂钩高完整性级别的应用程序。此外,您实际上是在创建一个键盘记录器,因此如果某些反恶意软件应用程序将您标记为可能的间谍软件,请不要感到惊讶。
  3. 您可能需要 64 位版本和 32 位版本。

减轻对计算机影响的一种方法是使用更有针对性的挂钩:找到您关心的特定进程,枚举其线程,然后仅挂钩这些线程。

Spy++ 是一种用于跟踪 Windows 消息的开发人员工具,可以满足您的大部分需求,但我不确定您是否可以利用它来达到您的目的。我不知道有任何其他工具或框架可以进行此类检测。