在游戏重新居中之前获取游标中的光标位置

时间:2017-04-08 20:55:27

标签: c++ windows winapi

我正在尝试记录我的游戏鼠标移动,以便我可以回放它。该游戏是使命召唤4,尽管这与这个问题无关。相关的是,大多数第一人称射击游戏在移动鼠标光标时会重新居中,这样你就不会碰到任何边界。搜索一段时间后,我在网上找不到任何关于此内容的信息。我目前正在使用鼠标钩子(WH_MOUSE)来跟踪鼠标移动(WM_MOUSEMOVE)。当我列出这些消息时,我可以看到光标被拉回到screenResolutionX / 2,screenResolutionY / 2(屏幕中心)。

我第一次尝试解决这个问题就是忽略这些消息,如果它们等于屏幕的中心,那么当我回放这些鼠标移动时,重新定心将被忽略。我认为这可以解决问题,但是现在当我回放鼠标移动时,鼠标走得太远(远离我录制的内容)。当我在游戏的主菜单中进行相同的录制/回放时(光标没有重新居中),播放非常准确。我的问题是:如果游戏重新定位我的光标,我该如何准确地记录游戏中的鼠标移动?

提前致谢。

编辑:让我澄清一下我在问什么。我只想记录实际用户鼠标输入,而不是重新定位鼠标光标的游戏。

2 个答案:

答案 0 :(得分:0)

您考虑过Low Level Mouse Hook了吗?它比鼠标钩子更早拦截鼠标消息。

答案 1 :(得分:-1)

为了拦截那些鼠标消息,您必须制作过滤器驱动程序或钩子。这是一篇关于这个主题的好文章(包含代码):

http://www.oblita.com/interception.html

该文章基于此Windows API: SetWindowsHookEx,并且对你来说是一个很好的起点。

相关问题