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

时间:2011-04-05 18:56:05

标签: python linux

让我说我跑:

import subprocess;
P = subprocess.Popen(['gnome-terminal');

然后我得到了班级P的对象Popen

<subprocess.Popen object at 0xb72a9d0c>

如何检索此子流程的window identity

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

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

我检查了wmctrl,但我不确定如何从这一点开始。

有什么想法?谢谢!

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

如果可以使用外部Shell实用程序,则可以使用xdotool

xdotool search --any --pid 1234