SendInput(Mouse(MOUSEEVENTF_RIGHTDOWN MOUSEEVENTF_RIGHTUP))在命运方舟中无效?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SendInput(Mouse(MOUSEEVENTF_RIGHTDOWN MOUSEEVENTF_RIGHTUP))在命运方舟中无效?相关的知识,希望对你有一定的参考价值。

最近在学ai,想训练一个能在命运方舟游戏中自动寻路的自监督学习模型。其他工作全完成了,结果想在游戏中模拟鼠标右键出了问题。
目前的现象是,不管是使用SendInput还是mouse_event。在游戏中均只能起效一次,只有再次真实点击了一次鼠标右键后,又再能起效一次。
个人猜测,是否命运方舟游戏在鼠标右键的命令中添加了特殊的指令?
不知道有没有大神对这方面有研究。

参考技术A 自己研究了下,记录一下进度。
命运方舟应该是对鼠标驱动加了一个过滤器,当鼠标驱动没有消息但是游戏实际收到消息时,就停止游戏接收命令,直到下一次真实的鼠标点击,让他收到了过滤器过来的消息。再次放开限制。导致了目前的现象。
在drivers目录里找到了一个mracdrv1.sys文件,而游戏开启时winobj查看device会多出一个mracdrv。感觉这个就是多出的驱动。之后尝试反编译

关于mouse_event和sendinput无效的原因

关于mouse_event和sendinput无效的原因  

 

SetCursorPos 有用,  

于mouse_event和sendinput 无用, 导致问题不清晰,  原来是我换了杀毒软件, 360搞的。

 

 

http://au2008127104.blog.163.com/blog/static/140871130201227478855/

 

今天用mouse_event写了个程序发送模拟鼠标消息,结果向任意程序发送消息无问题,但是向桌面、任务栏、我的电脑子文件夹还有360安全卫士发送就无效。解决方法很简单,打开360->木马防火墙->系统防护->驱动防护(防止木马加载驱动获得系统权限)点关闭就行。在自己写软件的时候,多半是没有数字签名的,这时mouse_event就会失灵。坑爹坑爹,花了爷我好几天,竟然是360这扑街高的怪。

 

以上是关于SendInput(Mouse(MOUSEEVENTF_RIGHTDOWN MOUSEEVENTF_RIGHTUP))在命运方舟中无效?的主要内容,如果未能解决你的问题,请参考以下文章

SendInput始终将鼠标指针移动到左上角

如果打开任务管理器,来自 user32.dll 的 SendInput 函数将不起作用

用C语言如何实现鼠标自动点击?

反模拟类游戏外挂 转

DirectX 游戏挂钩

使用 SendInput 模拟拖放操作