我正在使用python和pywin32库。我可以完美地发送例如Enter,或者在firefox中写'a'。但是我试图用PC游戏来做这件事,就像游戏不能检测到按键一样。
这是我的代码
import win32com.client as comclt
wsh = comclt.Dispatch("WScript.Shell")
wsh.AppActivate("pc game")
wsh.SendKeys("{ENTER}") #doesn't detect this :S
答案 0 :(得分:1)
大多数Windows游戏使用DirectX API来读取击键,他们只是忽略那种按键消息。它们直接与硬件交互。因此,您的代码将不适用于99%的Windows游戏。
我会通过编写自己的驱动程序并发送按键来实现这一点,就像手动按下它们一样。这很复杂,但并非不可能。
此外,我认为有更好的方法可以实现您想做的任何事情。在大多数情况下发送击键并不是一个干净的解决方案(特别是如果你想作弊)。
希望它有所帮助。