很难用Python获得窗口标题?

2024-06-01 02:16:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python每隔X秒检查一次窗口标题—到目前为止没有什么大问题,我发现了很多类似xprop的东西。
这里有一个棘手的部分:当使用xprop-id[id]代替指针时,我只得到2到3行

_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 24625202
SM_CLIENT_ID(STRING) = "1028c1d320b210000136266856800000015460035"
WM_CLIENT_LEADER(WINDOW): window id # 0x3a00004

这不是我在其他地方看到的,也不是我所需要的——那我怎么才能拿到冠军呢?这是一些错误的配置还是我对所有事情都大错特错了?在

附言:我用的是Fedora 18 btw


Tags: clientid标题nettimesmcreation指针
2条回答

使用-id和鼠标单击可以获得相同的属性集,前提是在这两种情况下都选择相同的窗口。要获取窗口ID,请使用xwininfo并单击该窗口。在

你可能只是因为列表中有很多行是空白的。试着向上滚动终端。在

使用xprop -name somewindowname ...时,您将获得所有信息。但是,如果somewindowname是您要查找的内容,那么该表单可能没有用处。在

另一种方法,假设窗口id是一个十六进制数(例如0x04a27cf6),则使用wmctrl -l和grep作为数字。例如,在我的机器(tini)上,窗口为0x04a27cf6,标题为“xprop man page”

wmctrl  -l | grep 0x04a27cf6

生产

^{pr2}$

注意,“wmctrl是一个与EWMH/NetWM兼容的X窗口管理器交互的UNIX/Linux命令行工具”,如tomas.styblo.namewikipedia中所述。多个linux发行版的包管理器可以安装它。在

在阅读了n.m.的答案后,我用xprop做了更多的测试。在昨天的测试中,xprop -id 0x4a27cf7只输出一行_NET_WM_USER_TIME(CARDINAL) = 440569797。这不是一个“滚动你的终端向上滚动”的问题。不幸的是,我已经没有窗口0x4a27cf7可用了,现在所有类似的测试似乎都工作正常,正如n.m.的答案所示。例如,在命令之后

for i in $(wmctrl -l |tee w-wmctrl | cut -c-10); do xprop -id $i | grep ^WM_NAME; done > w-xprop

文件w-wmctrlw-xprop中各有39行,通过diff -y w-*|less并排比较显示两个文件中的名称相同。在

相关问题 更多 >