C#检测击键并发送到后台窗口
今天我已经四处寻找了六个小时,寻找一种方法来完成我想要完成的任务。然而,由于运气不佳,我尝试过的每一种方法都不起作用 所以我正在开发的程序是一个用于视频游戏的多拳击应用程序。基本上,我想让我创建的应用程序在后台运行。用户将选中复选框以说明要捕获哪些密钥,因此并非每个密钥都被捕获。然后,当他们玩主游戏时,应用程序会将检查过的密钥发送到后台运行的游戏 我尝试过全局热键,但从来没有一个以上的关键工作。我也尝试过钩键,但由于某种原因,无法实现功能。我也涉猎了sendmessage,但也没什么运气C#检测击键并发送到后台窗口,c#,windows,background,keystrokes,C#,Windows,Background,Keystrokes,今天我已经四处寻找了六个小时,寻找一种方法来完成我想要完成的任务。然而,由于运气不佳,我尝试过的每一种方法都不起作用 所以我正在开发的程序是一个用于视频游戏的多拳击应用程序。基本上,我想让我创建的应用程序在后台运行。用户将选中复选框以说明要捕获哪些密钥,因此并非每个密钥都被捕获。然后,当他们玩主游戏时,应用程序会将检查过的密钥发送到后台运行的游戏 我尝试过全局热键,但从来没有一个以上的关键工作。我也尝试过钩键,但由于某种原因,无法实现功能。我也涉猎了sendmessage,但也没什么运气 我只是
我只是好奇是否还有其他人有这样做的想法。举一个例子,另一个做同样事情的程序是HotKeyNet、KeyClone和ISboxer。我知道还有更多,但这让你知道我在用我的应用程序做什么 我的建议是使用“映射内存”(在操作系统概念中:共享内存) 第一个进程创建(可能是您的检查状态程序)创建映射内存并将值写入其中 所有其他游戏进程从第一个进程创建的内存映射中读取值 这里有一个关于如何做的很好的例子
好吧,在对发送击键和读取击键的不同方法进行了大量研究之后。我终于能够将不同类型的编码拼接在一起,以提供我想要的结果 我正在公布答案,所以任何人在以后寻找这个问题的答案都可以找到 我将此代码拼接在一起的两个参考资料如下: 我使用全局低级hook和postmessage向后台应用程序发送击键
如果你对这篇文章有任何疑问,请告诉我,我会尽我所能引导你完成整个过程。希望这对以后的工作有所帮助。基本上,您希望在两个正在运行的进程之间进行通信。基本上是的,目前我已经设置了它,因此它将两个正在运行的进程都命名为Example1和Example2。我想当有人在玩示例1时,我的应用程序会在他们按下键时抓取他们要抓取的键,并将它们发送到后台进程示例2,所以它也可以在这个过程中执行击键。我唯一的问题是这种方法会写入内存,我知道一些游戏,比如魔兽世界。使用软件检测内存注入,并永久禁止使用该软件的帐户。我不想成为某人在这方面被禁止的原因。我知道他们允许多重装箱,但我不知道他们是否允许通过内存注入