我正在嘗試記錄遊戲中的鼠標移動情況,以便我可以回放它。遊戲是使命召喚4,儘管這與這個問題無關。與此相關的是,大多數第一人稱射擊遊戲在您移動鼠標光標時會重新居中,這樣您就不會碰到任何邊界。搜索一段時間後,我無法找到關於此在線的任何信息。我目前使用鼠標鉤(WH_MOUSE)來跟蹤鼠標移動(WM_MOUSEMOVE)。當我列出這些消息時,我可以看到光標被拉回screenResolutionX/2,screenResolutionY/2(屏幕中心)。在遊戲重新居中前獲取遊標在遊戲中的位置
我第一次嘗試解決這個問題就是忽略這些消息,如果它們等於屏幕中心,所以當我回放這些鼠標移動時,重新居中會被忽略。我認爲這可以解決問題,但現在當我回放鼠標移動時,鼠標變得太遠(與我記錄的方式不同)。當我在遊戲的主菜單中進行相同的錄製/回放(光標未被重新居中)時,回放非常準確。我的問題是:考慮到遊戲會重新集中光標,我該如何準確記錄遊戲中的鼠標移動?
在此先感謝。
編輯:讓我澄清我在問什麼。我只想記錄實際的用戶鼠標輸入,而不是重新集中鼠標光標的遊戲。
聽起來像你應該攔截鼠標**之前,**他們被髮送到遊戲的窗口。雖然我不確定如何去做這件事,但TBH – YePhIcK
我已經遇到過SO帖子,但我不同意驅動程序/過濾器是完成我所要做的事情所必需的。只有當我想在鼠標數據到達Windows之前攔截鼠標數據時,情況纔會如此,而不是在重新集中之前我想攔截它。也許有一種方法可以確定鼠標消息的來源,如果它是由遊戲進程發送的,那麼我會忽略它?我找不到像這樣的東西.. –
「Windows」是一個超載的術語。在上面的上下文中,「窗口」的意思是「遊戲的窗口」,而不是「Windows的操作系統」 – YePhIcK