我编写了一个带有按钮的简单GUI,用于启动批处理脚本,如下所示:
from tkinter import *
import subprocess
class Application(Frame):
def __init__(self, master):
super().__init__(master)
self.master = master
self.btn = Button(self.master, text='Start program', command=self.btn_callback)
self.btn.pack()
@staticmethod
def btn_callback():
subprocess.run(r'start C:\temp\prog.bat', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
root = Tk()
root.title('my app')
root.geometry("500x500")
app = Application(root)
root.mainloop()
批处理脚本会再次启动其他类似的过程:
@echo off
start "process1"
timeout /T 5
start "process2"
timeout /T 5
start "process3"
...
我想要的是禁用GUI中的按钮,直到用户关闭从批处理启动的所有进程。有可能吗
我曾想过直接在python脚本中启动所有进程,并跟踪这些进程的PID,但我不确定如何获得PID(将进程视为变量,而不是在tasklist
中搜索的固定名称),以及如何在GUI应用程序中跟踪它们?谢谢
目前没有回答
相关问题 更多 >
编程相关推荐