[英]key press in a Python subprocess?
try:
subprocess.run(exe_path)
keyboard.press_and_release('enter')
print('Successful Extracted')
except Exception as exe:
print(exe.args)
keyboard.press_and_release('enter')
关键是运行windows的EXE,但它需要键盘输入来结束它的进程,除非物理给出键盘输入,否则它会一直卡在那里。 现在我面临的问题是
subprocess.run('some_exe')
正在运行该进程并成功运行后询问
Press Any Key To Exit
虽然我已经在subprocess.run旁边提到过
keyboard.press_and_release('enter')
除非我们手动按下键盘上的按钮,否则它会进入下一行
注意:python3.8
您可以创建一个 .vbs 文件来运行您的 .exe 文件或 python 脚本,而无需控制台调试窗口:
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c python main.py"
oShell.Run strArgs, 0, false
如果您有 .exe 文件,只需将python main.py
替换为yourFile.exe
。
为了一个可重现的示例,假设我们希望将以下 Python 脚本作为子进程运行,我们将其命名为script.py
。
input('Press Enter to exit.')
它不会终止,直到用户按下Enter键。 如果我们想模拟按键,我们可以使用Popen.communicate
向子Popen.communicate
的stdin
发送一个换行符。 像这样:
from subprocess import Popen, PIPE
process = Popen(['python', 'script.py'], stdin=PIPE, text=True)
process.communicate('\n')
显然,如果外部程序接受任何退出键,这也有效。 只发送没有明显文本表示的特殊键,例如F1 ,会使事情复杂化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.