Python 如何模拟非活动窗口的直接输入?

Python 如何模拟非活动窗口的直接输入?,python,input,keyboard,pywin32,simulate,Python,Input,Keyboard,Pywin32,Simulate,我想将直接输入发送到python中的(可能)非活动窗口。 到目前为止,我已经找到了一种通过ctypes发送直接输入的方法,并且我有了一种模拟窗口输入的解决方案,它在一些游戏中不起作用,因为我正在测试的(GTA V)是使用直接输入,使用postMessage()via 那么,当目标窗口可能未激活时,我现在如何模拟这些直接输入呢?这可能吗 我认为应该是这样,因为在这种情况下,例如AutoHotkey可以直接发送 如果您想自己做实验,我可以提供postMessage()版本,否则我想保留问题代码。据我

我想将直接输入发送到python中的(可能)非活动窗口。 到目前为止,我已经找到了一种通过ctypes发送直接输入的方法,并且我有了一种模拟窗口输入的解决方案,它在一些游戏中不起作用,因为我正在测试的(GTA V)是使用直接输入,使用
postMessage()
via

那么,当目标窗口可能未激活时,我现在如何模拟这些直接输入呢?这可能吗

我认为应该是这样,因为在这种情况下,例如AutoHotkey可以直接发送


如果您想自己做实验,我可以提供postMessage()版本,否则我想保留问题代码。

据我所知,您不能这样做。解决方法(位于)将是

  • 在您的计算机上获取虚拟机
  • 将游戏和脚本加载到虚拟机上
  • 运行游戏并让脚本与活动窗口交互(在VM上)
  • 最小化主机的VM窗口

我不是这些方面的专家,但我认为它们可以通过
win32gui
win32con
模块来实现,对吗?我知道你可以找到像
hwnd=win32gui.FindWindow(None,'GTA V')
或类似的窗口句柄,你可以想象一旦你有了这个窗口句柄,你就可以向它发送键了吗?IDK我以前从未做过这是我的问题。从技术上讲,我是按照您所说的方式工作的,但由于本例中的GTA V需要直接输入,它只是忽略通过
postMessage(hwnd,WM_KEYDOWN,wparam,lparam)
发送给它的击键,因此我正在寻找一种模拟直接输入的方法,这是我所期望的,所以这是我在做一个项目时遇到的同一个问题。我将尝试(再次)为我们两人解决:)那么你是说游戏需要如所示的扫描代码,并且你已经实现了这样的解决方案,它适用于活动窗口,只需要找到一种方法将它们发送到非活动窗口?这是正确的。我想把这些直接输入发送到一个特定的窗口。谢谢你的帮助!是的,也许没有办法。然而,你发现这是一个很好的解决方法,不幸的是,我认为它不实用,因为虚拟机对于这样的游戏来说太慢了,特别是因为我想在机器人不活动时实际玩:D有一个upvote@DJSchaffner我买了:)