Ror*_*ory 4 python linux metacity gnome window-managers
有没有办法获得目前打开的所有窗口的列表,看看哪个窗口在顶部(即活动?)来自Python?
这是在Ubuntu Linux上使用Gnome.
wnck看起来可能会这样做,但它在文档中非常缺乏.
Mes*_*ion 11
以下是使用现代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()
Run Code Online (Sandbox Code Playgroud)
至于文档,请查看Libwnck参考手册.它不是特定于python,但使用GObject Introspection的重点是在所有语言中使用相同的API,这要归功于gir绑定.
此外,Ubuntu随附两个wnck及其相应的gir绑定开箱即用,但如果您需要安装它们:
sudo apt-get install libwnck-3-* gir1.2-wnck-3.0
Run Code Online (Sandbox Code Playgroud)
这也将安装libwnck-3-dev,这不是必需的,但会安装您可以使用DevHelp阅读的有用文档
import wnck
screen = wnck.screen_get_default()
window_list = screen.get_windows()
active_window = screen.get_active_window()
Run Code Online (Sandbox Code Playgroud)
另请参阅X中的获取活动窗口标题和文档中的WnckScreen.包含wnck的其他问题包含有用的代码示例.