繁体   English   中英

从Python发现Gnome / Linux / Ubuntu上哪些窗口处于活动状态?

[英]Discover what window is active on Gnome/Linux/Ubuntu from Python?

有没有办法获得目前打开的所有窗口的列表,看看哪个窗口在顶部(即活动?)来自Python?

这是在Ubuntu Linux上使用Gnome。

wnck看起来可能会这样做,但它在文档中非常缺乏。

以下是使用现代GObject Introspection库的相同代码,而不是现在弃用的PyGTK方法Josh Lee发布的:

from gi.repository import Gtk, Wnck

Gtk.init([])  # necessary if not using a Gtk.main() loop
screen = Wnck.Screen.get_default()
screen.force_update()  # recommended per Wnck documentation

window_list = screen.get_windows()
active_window = screen.get_active_window()

至于文档,请查看Libwnck参考手册 它不是特定于python,但是使用GObject Introspection的重点是在所有语言中使用相同的API,这要归功于gir绑定。

此外,Ubuntu附带了wnck及其相应的gir绑定开箱即用,但如果你需要安装它们:

sudo apt-get install libwnck-3-* gir1.2-wnck-3.0

这也将安装libwnck-3-dev ,这不是必需的,但会安装你可以使用DevHelp读取的有用文档

import wnck
screen = wnck.screen_get_default()
window_list = screen.get_windows()
active_window = screen.get_active_window()

另请参阅X中的获取活动窗口标题和文档中的WnckScreen。 包含wnck的其他问题包含有用的代码示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM