1

这更像是一个概念/实现问题,而不是特定的语言问题。

有人对光标移动记录有任何见解吗?
获取光标的当前位置非常容易,但是您将如何记录光标所跟随的路径呢?
(到可以以图形方式绘制的详细程度,而不会对所采用的路径产生歧义)

我想您可以在一小段时间后重复记录光标的当前位置,将其全部记录下来以列出按时间顺序访问的坐标,但我不确定记录应该多频繁(或可行);每 10 毫秒?
我什至没有遇到过如此短的睡眠时间达到必要精度的方法!

我还担心 CPU 使用率高时睡眠和录音的性能;当用户使用鼠标与密集型软件交互时。

我什至不完全确定光标真正移动的位置。如果我将光标扫过屏幕,计算机(内部某处)是否承认我越过了所有这些像素,或者我的鼠标真的告诉它“我在那里,现在我在这里,现在我在那里”。

我也寻求一种区分快速和慢速运动的方法,但现在,我只能观察访问坐标图上的绘图间距。

有人对此有任何见解吗?任何潜在的陷阱;我的担忧合法吗?我在这件事上走错了吗?

(可以观察到,我真的需要一些指导)

谢谢!

4

1 回答 1

1

在同一个应用程序中记录鼠标移动要容易得多 - 只需在每条WM_MOUSEMOVE消息上记录一些内容。您将收到定期更新鼠标指针位置的消息。您不会收到WM_MOUSEMOVE鼠标经过的每个像素的消息,但它会根据您移动鼠标的速度和系统的繁忙程度而跳跃。

在其他一些应用程序中记录鼠标移动将稍微复杂一些。如果你已经编写了logger和被记录的应用程序,那么你可以WM_MOUSEMOVE在被记录的应用程序中处理,并发送相应的消息到你的logger应用程序。您选择的 IPC;一个简单的SendMessage()可能就足够了。

在整个系统中记录鼠标移动是一个完全不同的问题。您可能必须在更接近驱动程序级别的地方进行连接。

我只是想到了另一种方法——CBT(基于计算机的训练)钩子旨在提供跨应用程序的准确信息。我从来没有使用过这些,所以你必须做更多的调查。

于 2012-11-24T06:06:34.090 回答