Python模拟游戏中的“输入”按键

时间:2016-11-15 20:41:14

标签: python pyautogui

所以我一直试图让一个脚本在视频游戏中输入一串文字(激战2)。主要是我使用pyautogui,并且在大多数情况下它工作正常。我的问题是,我似乎无法让游戏识别出“输入”。例如,如果我有代码:

import pyautogui, time
time.sleep(2) #to allow me to have time to switch windows
pyautogui.press('enter')
pyautogui.typewrite("This is a test")
pyautogui.press('enter')

两个“按下输入”功能将无法打开并提交文本。但是,如果我手动点击输入,第3行就可以输入正确的内容了。

我也尝试用keyDown替换press('enter'),然后是keyUp,但仍然没有结果。

我已经设法通过让python命中F10来创建一个解决方法,然后在F10命中时单独的Autohotkey脚本命中输入,但这远非理想。有什么建议吗?

评论中的额外注释:脚本本身在其他程序(如记事本)中运行良好。它似乎完全失败了游戏客户端。

2 个答案:

答案 0 :(得分:1)

对于任何找到这篇文章的人。答案基本上是由于大多数游戏如何解释按键,因此不能以这种方式完成。此处显示了一个工作系统:Simulate Python keypresses for controlling a game

答案 1 :(得分:0)

\nreturn都不起作用,因此您必须使用pydirectinputhttps://github.com/learncodebygaming/pydirectinput

使用pip install pydirectinput安装它,然后将其导入并用作自述文件。