【问题标题】:How can I send keyboard and mouse input to a game that is not the active window on Windows 7?如何将键盘和鼠标输入发送到 Windows 7 上不是活动窗口的游戏?
【发布时间】:2012-03-03 19:49:01
【问题描述】:

这不适用于某种机器人程序。我在寻找任何可以通过魔兽世界或任何类似游戏的守望者的黑客。我想尝试的游戏是单人角色扮演游戏。我对在 Windows 中进行编程不是很有经验,我想知道如何让程序在后台玩 PC 游戏,而我同时在同一台 PC 上做其他事情。游戏涉及使用鼠标和键盘。我认为,如果我在使用计算机的同时程序也在尝试使用鼠标和键盘,那会导致问题。当然,这是假设通过程序向游戏发送键盘和鼠标输入的方法需要以某种方式劫持鼠标和键盘,如果这可能的话。

那么,是否可以将键盘和鼠标输入发送到该游戏?游戏主要在后台进行。

【问题讨论】:

    标签: c++ windows visual-c++ input


    【解决方案1】:

    我知道的 3 个选择

    1) 使用 SendKey 及相关功能。他们可能会感到困惑并将输入发送到错误的地方

    2) 使用AutoHotKey 编写您想要执行的脚本。

    3) 从AutoHotKey 窃取比 SendKey 做得更好的代码

    【讨论】:

    • 我知道 SendKeys 和类似的一个是 SendInput,但是这两个在非活动窗口上不起作用。 AutoHotKey 是否适用于非活动窗口?
    • 好的,很高兴知道这一点。我在想我将不得不编写某种在窗口和游戏之间拦截的包装程序。干杯。
    【解决方案2】:

    您不能将键盘事件发送到后台进程。你应该把它带到前面,AttachThreadInput 到它,并模拟按键事件。至于鼠标输入,它可能与后台进程一起使用,但这取决于进程的具体情况,我认为游戏软件在后台时也不会与鼠标事件一起使用。

    【讨论】:

    • 即使没有 dll 注入?窗口是否配置为只有活动窗口才能接收输入?
    • 是的,这是 Windows 设计的限制。我想窗口子类化(通过注入的 dll)在某些情况下可以工作,但总的来说这是有问题的。
    猜你喜欢
    • 2021-07-28
    • 2019-03-21
    • 2012-01-22
    • 2010-09-29
    • 2014-10-04
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多