多重起動防止でまだ詰まっております。
C 言語での方法はボチボチ見つかるけど Python に書き換えると上手くいかない。
色々調べると wnck なんていうモジュールがあることが解った。
1 2 3 4 5 6 7 8 9 10 11 12 13 | #!/usr/bin/env python #-*- coding:utf-8 -*- import wnck # デスクトップ取得 w = wnck.screen_get_default() # ディスプレイサイズ print "ディスプレイ幅" ,w.get_width() print "ディスプレイ高さ" ,w.get_height() |
なんてコトができるというのが解った。
が PyGtk のヘルプにも Python のヘルプにも wnck の項目が見つからない…
Gnome のヘルプ内で Libwnck というのがやっと見つかった。
Opera のページ内検索は便利だね、ドットを押すだけだし。
いや、肝心の検索バーが Linux 版はたまに入力不能になるので…まあこれはいい。
後は man と dir(wnck) と USA Google を使って地味に調べてみた。
ほーこんなことができるんだ。
ということは
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/usr/bin/env python #-*- coding:utf-8 -*- import gtk import wnck screen = wnck.screen_get_default() while gtk.events_pending(): gtk.main_iteration() for window in screen.get_windows(): name = window.get_name() if name.endswith( "Y901x" ): print "起動しています" break |
なんてコードで現在 Y901x が起動しているかどうかは確認できるわけだ。
同じ名前が存在していたら困るけどまず無いだろう。
とはいえいつのまにか全然違うコードになるかもしれないんだけど…
とにかく後はウインドウに URI を渡す処理だけだ、もう少し。