在Python中启动进程并检索其窗口ID

Ame*_*ina 5 python linux

比方说我跑:

import subprocess;
P = subprocess.Popen(['gnome-terminal');
Run Code Online (Sandbox Code Playgroud)

然后我得到P了该类的一个对象Popen:

<subprocess.Popen object at 0xb72a9d0c>
Run Code Online (Sandbox Code Playgroud)

然后我如何检索window identity此子流程?

最后,我想使用wmctrl来操纵子进程生成的窗口的几何属性,但为此我需要一些称为windows identity窗口的东西(参见wmctrl的文档)

要为问题提供更多上下文,请wmctrl -l输出在GNOME桌面上运行的窗口列表,其中第一列显示window identity每个窗口的窗口.这是一个我注意到的十六进制数字与上面Popen报告的输出中包含的数字不同.

我检查了Popen文档,但我不确定如何从这一点开始.

有什么想法吗?谢谢!

nmi*_*els 4

获取窗口 ID 的一个简单方法是使用wmctrl -lp其中包含进程的 PID。找到与您的子进程匹配的那个Popen.pid,您将找到该进程的窗口 ID。