現在開いているすべてのウィンドウのリストを取得する方法はありますか?また、Pythonのウィンドウが一番上にある(アクティブな)のか確認する方法はありますか?Gnome/Linux/UbuntuでPythonのどのウィンドウがアクティブになっていますか?
これは、Ubuntu LinuxでGnomeを使用しています。
wnckはこれを行う可能性がありますが、ドキュメントには欠けています。
現在開いているすべてのウィンドウのリストを取得する方法はありますか?また、Pythonのウィンドウが一番上にある(アクティブな)のか確認する方法はありますか?Gnome/Linux/UbuntuでPythonのどのウィンドウがアクティブになっていますか?
これは、Ubuntu LinuxでGnomeを使用しています。
wnckはこれを行う可能性がありますが、ドキュメントには欠けています。
import wnck
screen = wnck.screen_get_default()
window_list = screen.get_windows()
active_window = screen.get_active_window()
Get active window title in XおよびWnckScreenも参照してください。その他のquestions containing wnckには便利なコードサンプルがあります。 Libwnck Reference Manualをチェックアウトし、ドキュメントについては
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()
:
このウィンドウがアクティブでなくなっても、繰り返しクエリを実行すると常に同じウィンドウが返されます。状態を更新するには、Gtkイベントキューをフラッシュし、 'get_active_window'を呼び出す前に' force_update'を明示的に呼び出さなければなりません。この要点を例に挙げてみましょう。https://gist.github.com/adewes/6960581 – ThePhysicist
はここで代わりにジョシュ・リーが掲示廃止PyGTKの方法の近代的なGObjectのイントロスペクションライブラリを使用して同じコードです。これはPythonに特有のものではありませんが、GObjectイントロスペクションを使用することの全ポイントは、gir
バインディングのおかげで、すべての言語で同じAPIを使用することです。また
wnck
とそれに対応する
gir
とUbuntuの船が、あなたがそれらをインストールする必要がある場合:
sudo apt-get install libwnck-3-* gir1.2-wnck-3.0
また、これは必要ありませんこれは、libwnck-3-dev
がインストールされますが、便利なインストールされます。 DevHelp
これは本当の最新の答えだと思います。ありがとう。 – jonS90
@MestreLion Hm。面白い。わかりました、私のコードが問題のようです。私は私の賞賛を削除しました。助けてくれてありがとう! –
[Cドキュメント](http://library.gnome.org/devel/libwnck/stable/)または[Perl documentation](http://gtk2-perl.sourceforge.net/)を使用して読むことができるドキュメントdoc/pod/Gnome2/Wnck/index.html)はおそらくあなたが必要とするものです。 Pythonはそれほど違いはありません。 –
[Pythonを使用してアクティブウィンドウを取得する](http://stackoverflow.com/a/36419702/562769)を参照してください。 –