有没有办法从 Python 中获取当前打开的所有窗口的列表并查看顶部的窗口(即活动的?)?
这是在 Ubuntu Linux 上使用 Gnome。
wnck 看起来可能会这样做,但它非常缺乏文档。
有没有办法从 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()
See also Get active window title in X, and WnckScreen in the documentation. Other questions containing wnck have useful code samples.