python - python - 从 python 脚本启动的跟踪进程
问题描述
我编写了一个带有按钮的简单 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 应用程序中跟踪它们?谢谢!
解决方案
推荐阅读
- firebase - 可调用函数的 URL 错误
- java - 编译成原生镜像的 H2 数据库只能作为客户端使用
- mysql - 将 SQLite 视图移植到 MySQL
- jar - 无法使用嵌入式 Jetty 访问 JAR 文件中的静态资源
- python - Python-3.x-Selenium:在网站上保持登录状态时更改使用的驱动程序
- knockout.js - 从敲除模板中读取多个选择列表值
- python-3.x - 使用 Telethon 库获取 Telegram 中频道的所有用户
- javascript - 特定类处于活动状态时更改背景颜色
- java - Java:在资源中使用反斜杠处理文件/目录
- reactjs - 有没有办法将泛型类型传递给 react useReducer 钩子中使用的减速器?