首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中获得wmctrl输出

如何在python中获得wmctrl输出
EN

Ask Ubuntu用户
提问于 2013-07-30 08:45:40
回答 2查看 2.6K关注 0票数 0

如何获得终端代码"wmctrl -m“的输出?

代码语言:javascript
复制
$ wmctrl -m
Name: GNOME Shell
Class: N/A
PID: N/A
Window manager's "showing the desktop" mode: ON

在python代码中?我不知道如何在短时间内调用这个命令。目的是,我想得到模式的值:ON或mode:OFF。

现在我只进口wmctrl

代码语言:javascript
复制
import wmctrl

后来怎么样了?

EN

回答 2

Ask Ubuntu用户

发布于 2013-07-30 09:02:29

您可以使用子进程样式的分叉方式(实质上运行命令并解析输出),也可以正确地使用wmctrl封装

代码语言:javascript
复制
In [1]: from wmctrl import Window
In [2]: Window.get_active()
Out[2]: Window(id='0x07000062', desktop=0, pid=1878, x=657, y=299, w=1042, h=769, wm_class='terminator.Terminator', host='bert', wm_name='oli@bert: ~', wm_window_role='')

文档没有太多,所以如果您想了解更多的话,我建议您运行help(Window) .或者只是看看这个类的来源。

票数 4
EN

Ask Ubuntu用户

发布于 2013-07-30 09:24:30

同时,我想出了如何得到输出:

代码语言:javascript
复制
import wmctrl
import subprocess as s

p=s.Popen(["wmctrl","-m"], stdout=s.PIPE)
out, err = p.communicate()
print(out)

if "mode: ON" in str(out):
    print("Desktop is shown")
if "mode: OFF" in str(out):
    print("Desktop is not shown")

现在发生了另一件奇怪的事情,尝试它(这段代码运行):

运行它,观察打印输出。

然后显示桌面。

再跑一次。

输出更改为“显示桌面”,正如预期的那样。

在启动程序中再次单击“显示桌面”图标,然后再次运行代码。

您可以看到窗口,因此没有显示桌面,但输出仍然是“桌面显示”。所以这有点没用..。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/326411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档