C# 背景鼠标模拟

C# 背景鼠标模拟,c#,mouse,driver,C#,Mouse,Driver,我正在用C语言编写一个程序,它连接到另一个进程,并从另一个进程读取内存等。我正在寻找一种在另一个进程中模拟鼠标移动的方法,但另一个进程专门阻止PostMessage、SendMessage等方法。我试图远离注入或内存写入,因此这不是一个选项。我被告知最好的方法是创建一个虚拟鼠标驱动程序,并将其挂接到另一个进程上。有没有其他方法可以让我这样做,或者我可以如何挂接虚拟鼠标驱动程序?使用单独的程序(如autohotkey)来驱动鼠标移动是可行的?因为这就是我要做的。我不确定你的目标是什么程序,但我已经

我正在用C语言编写一个程序,它连接到另一个进程,并从另一个进程读取内存等。我正在寻找一种在另一个进程中模拟鼠标移动的方法,但另一个进程专门阻止PostMessage、SendMessage等方法。我试图远离注入或内存写入,因此这不是一个选项。我被告知最好的方法是创建一个虚拟鼠标驱动程序,并将其挂接到另一个进程上。有没有其他方法可以让我这样做,或者我可以如何挂接虚拟鼠标驱动程序?

使用单独的程序(如autohotkey)来驱动鼠标移动是可行的?因为这就是我要做的。

我不确定你的目标是什么程序,但我已经看到了阻止PostMessage的游戏(未命名的游戏;p)的很酷的解决方法

我不知道挂接虚拟鼠标驱动程序是否有效。我以前听说过这种方法,但我的感觉是,如果PostMessage被阻止,那么它将是徒劳的。鼠标驱动程序是否只是使用标准windows消息向游戏窗口发送消息

我见过开发人员阻止PostMessage/SendMessage的最常见的方法是从系统文件夹复制Windows DLL并将其和游戏一起分发(我想知道这是否合法?)。由于DLL加载游戏地址空间的本地函数,因此游戏可以通过确保调用方也是游戏地址空间的本地来阻止其他进程访问这些函数

绕过这个问题的一个简单方法是在游戏进程中插入一个DLL,并在其函数中挂接。但是,开发人员熟悉这种方法,仍然可以通过在函数的入口点执行某些检查来阻止您的调用(我不确定这些检查是什么)。据我所知,解决此检查的一种简单方法是自己定义PostMessage函数的前几个字节,然后跳转到PostMessage中检查后的一个点

我不想再详细阐述了,因为我所讨论的内容非常具体,主题非常深刻,不断变化,并且并不是真正针对堆栈溢出的人


我提到的所有这些都是我从各种游戏黑客论坛上获得的基本想法——这些都是寻找此类问题的地方。游戏黑客社区对他们的信息非常严格,但经过足够的时间后,每个人都愿意分享他们的方法:)

在开发SCAR(RuneScape宏程序)时,开发人员最终不得不围绕java文件(称为SMART)构建一个包装器,并拥有一个“假鼠标”在这个包装器中,可以使用基本函数调用来控制take。我不知道如何在C#中实现这一点,但在Java中这是可能的。在SMART之前,您要么允许使用鼠标(直接移动鼠标),要么使用称为“无声鼠标”的东西。静默鼠标连接到java.exe及其JVM中的函数,并控制鼠标输入,正如Kai所述。然而,正如Kai所描述的,这很容易被检测到,所以没有人使用它。

只是不能在WoW-huh中达到下一个级别?我可以在C#中移动鼠标,很好。我只需要能够在背景窗口上做,而我可以用我的另一个鼠标做其他事情。非常有用的帖子。我想这不是针对这里的人,但有人建议我在这里发布,因为你们知道的比大多数人多得多。我感觉这是一个非常复杂的任务,我需要另一个解决方案。我很确定我已经弄糟了一个“保护”,它直接从驱动程序读取鼠标和键盘输入,而不是挂起Windows API事件。实现虚拟鼠标/键盘驱动程序应该可以。好吧,我试过了,但是当我达到极低的水平时,我对混乱和缺乏支持感到厌恶。