我使用python的子进程在win7中运行'mstsc'程序:
>>> import subprocess
>>> p=subprocess.Popen('mstsc')
>>> p.pid
8884
然而,当我检查Windows的进程监视器时,'8884'进程不存在,而另一个'mstsc'确实存在。所以我想知道'mstsc'在调用子进程时是否创建了另一个子进程。请帮帮忙?
答案 0 :(得分:6)
嗯,我仍然是python的新手,但你仍然可以通过这个。
Popen类在Windows中使用CreateProcess函数来执行子程序。 CreateProcess函数创建一个新进程及其主线程。此新进程在调用进程的安全上下文中运行。
在内部,它使用CreateProcessAsUser或CreateProcessWithLogonW函数在用户的安全上下文中运行新进程。
根据我的理解,它会为实际执行的suprocess.Popen()提供不同的pid。