我正在使用Python3运行MS-DOS模拟器(^{cd1>)。这个想法是在树莓皮中设置这个,并有我自己的街机,但是我将使用python制作一个好看的GUI,以能够选择哪个游戏玩,并让它自动启动。
但是,^{cd1>}在新窗口中启动程序,我需要控制该窗口的输入和输出。这是为了标准化密钥绑定(所有游戏都使用相同的密钥集),并设置一些自动按键,以使某些游戏自动启动。import os
import pygame
import subprocess
import time
cwd = os.getcwd()
cmd = ['dosbox', cwd+'/Hi-Octane/HiOctane/EXECUTOR.EXE']
p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE)
time.sleep(2)
out, err = p.communicate('1'.encode('utf-8'))
print(out)
在上面的代码中,我尝试向窗口发送一个“1”(如中所示,有人按下^{cd3>}键)(这是游戏开始运行所需的)。
TL;DR:如何模拟按键或鼠标压力,并将输入发送到调用中由子进程打开的窗口?