5

現在開いているすべてのウィンドウのリストを取得し、Pythonから上部にある(つまりアクティブな)ウィンドウを確認する方法はありますか?

これはUbuntuLinuxでGnomeを使用しています。

wnckはこれを行う可能性があるように見えますが、ドキュメントが非常に不足しています。

4

2 に答える 2

12

これは、現在廃止されているPyGTKメソッドの代わりに最新のGObjectIntrospectionライブラリを使用した同じコードです。JoshLeeが投稿しました。

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リファレンスマニュアルを確認してください。girこれはPythonに固有のものではありませんが、GObject Introspectionを使用することの全体的なポイントは、バインディングのおかげで、すべての言語で同じAPIを使用することです。

wnckまた、Ubuntuには両方とそれに対応するバインディングが付属してgirいますが、それらをインストールする必要がある場合は次のようになります。

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

これもインストールされます。これは必須ではありませんが、 DevHelplibwnck-3-devを使用して読むことができる便利なドキュメントをインストールします。

于 2013-05-22T23:18:54.950 に答える
8
import wnck
screen = wnck.screen_get_default()
window_list = screen.get_windows()
active_window = screen.get_active_window()

ドキュメントの「 Xでアクティブなウィンドウタイトルを取得する」および「WnckScreen 」も参照してください。wnckを含む他の質問には、有用なコードサンプルがあります。

于 2011-02-08T17:00:12.767 に答える