我正在运行一个程序,subprocess.run()
以便跟踪该程序的总运行时间。同时,程序操作的细节是它终止其进程并用另一个进程再次打开自己(进程的名称相同,PID 不匹配,我检查过(Get-Process ИМЯ_ПРОЦЕССА| Where-Object SessionId -eq (Get-Process -ID $PID).SessionId).ID
)。因此,subprocess.run() 将控制权返回给我,尽管所需的程序继续运行。
我可以对程序进行硬编码,因为我知道我正在寻找的进程的名称,而且我可以在开始后一秒钟开始计算时间,但我想找到一种更通用的方法。
我看到有人使用 获取子进程Tasklist /fi 'IMAGENAME eq ИМЯ_ПРОЦЕССА' /v
,但进程重新打开的速度比此命令触发的速度快,因此我获得了有关新进程的信息
想出了一个令人满意的方法来做我想做的事。你需要 psutil模块
适用于“普通”应用程序和通过启动器自行重启的应用程序