我正在使用Python3来运行MS-DOS模拟器(dosbox
)。我的想法是在Raspberry Pi中设置它并拥有自己的街机,但我会使用python制作一个体面的GUI,以便能够选择要播放的游戏并自动启动。
但是,dosbox
在新窗口中启动程序,我需要控制该窗口的输入和输出。这是为了标准化键绑定(让所有游戏使用相同的键集)并为某些游戏设置一些自动按键以自动启动。
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'(如有人按下1
键)(这是游戏需要按下以开始运行的内容)。
TL; DR:如何模拟按键或鼠标按键并将输入发送到子进程打开的窗口中?