gpt4 book ai didi

python - 如何通过 Python 计算 Linux 上具有特定标题的窗口的数量?

转载 作者:太空狗 更新时间:2023-10-29 11:15:33 26 4
gpt4 key购买 nike

这是我的解决方案,但我认为这不是一个好的解决方案。任何人都可以建议我新的解决方案,我想枚举窗口,并通过使用 python 的核心库而不是 wnck 或 pygtk 来获取 Title 属性进行比较......

def linux_CountWindowsByTitle(title):
import commands
XWinInfoOutput = commands.getoutput("xwininfo -all -root")
resArray = XWinInfoOutput.split("\n")
resRange = len(resArray) - 1
res = 0
#Parse each line of output
for i in range(0, resRange):
index = resArray[i].find("\"") #Get index of Double quote
if (index < 0):
continue #This line does not have title we need

tmp = resArray[i].split("\": (")[0] #Remove tail
windowName = tmp.split("\"",1)[1] #Remove head
if (UTILITY.Compare(title, windowName)):
#LIBRARY.Report(windowName)
res += 1

return res

最佳答案

您可以使用模块wnck

import wnck

screen = wnck.screen_get_default()
window_list = wnck.Screen.get_windows(screen)

window_names = [ w.get_name() for w in window_list ]

为了统计相似的窗口,可以创建一个字典:

count = window_names.count
wcounts = { item: item.count(item) for item in set(window_names) }

字典将以窗口标题作为键,值将是重复相同名称的次数。

略有不同,但您可能会发现使用起来很有趣:

wdict = { w.get_name(): w for w in window_list }
wdict.has_key(title)

如果稍后需要窗口进行其他处理,您仍然可以在 wdict 中找到方便的引用。例如,您可以检查属性、将其最大化、最小化以及窗口管理器会执行的所有典型操作。

注意:对于较新版本的 wnck (>=3.0),您必须使用 PyGObject(GObject Introspection),但您明白了。

关于python - 如何通过 Python 计算 Linux 上具有特定标题的窗口的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12926374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com