记录光标移动

时间:2012-11-24 05:49:41

标签: cursor desktop-recording

这更多是概念/实施问题,而不是特定的语言问题。

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

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

我还关注在CPU使用率很高的情况下睡眠和录音的性能;当用户使用鼠标与密集型软件进行交互时。

我甚至不确定光标在哪里移动。 如果我将光标扫过屏幕,计算机(内部某处)确认我已经越过了所有这些像素, 或者我的老鼠真的告诉它“我在那里,现在我在这里,现在我在那里”。

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

有人对此有任何见解吗? 任何潜在的陷阱;我的担忧合法吗? 我对此有错误吗?

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

在某些其他应用程序中记录鼠标移动将涉及更多。如果您已记录记录器和正在记录的应用程序,则可以在正在记录的应用程序中处理WM_MOUSEMOVE,并将相应的消息发送到记录器应用程序。您选择的IPC;一个简单的SendMessage()就足够了。

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

我想到了另一种方法 - CBT (Computer-Based Training) hooks旨在提供跨应用程序的这种信息。我从未使用过这些,所以你必须做更多的调查。