擅长:python、mysql、java
<p>正如@eryksun所建议的,子流程模块也可以处理等待:</p>
<pre><code>import subprocess
process = subprocess.Popen(["notepad.exe"], shell=False)
process.wait()
print ("notepad.exe closed")
</code></pre>
<p>您可以使用这样的方法,跟踪已打开程序的进程id:</p>
<pre><code>import subprocess, win32com.client, time
wmi=win32com.client.GetObject('winmgmts:')
process = subprocess.Popen(["notepad.exe"], shell=False)
pid = process.pid
flag = True
while flag:
flag = False
for p in wmi.InstancesOf('win32_process'):
if pid == int(p.Properties_('ProcessId')):
flag = True
time.sleep(.1)
print ("notepad.exe closed")
</code></pre>
<p>关闭记事本时输出:</p>
<pre><code>notepad.exe closed
>>>
</code></pre>