所以我一直试图让一个脚本在视频游戏中输入一串文字(激战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脚本命中输入,但这远非理想。有什么建议吗?
评论中的额外注释:脚本本身在其他程序(如记事本)中运行良好。它似乎完全失败了游戏客户端。
答案 0 :(得分:1)
对于任何找到这篇文章的人。答案基本上是由于大多数游戏如何解释按键,因此不能以这种方式完成。此处显示了一个工作系统:Simulate Python keypresses for controlling a game
答案 1 :(得分:0)
\n
或return
都不起作用,因此您必须使用pydirectinput
:https://github.com/learncodebygaming/pydirectinput
使用pip install pydirectinput
安装它,然后将其导入并用作自述文件。