2

私はgnomeを実行しており、それぞれ独自のGUIウィンドウを持つ多数の個別のプロセスを生成するプログラムを持っています。タイトルが特定のパターンに一致する開いているウィンドウを選択的に取得して、それらを閉じることができるようにしたいと考えています。これを簡単に行う方法を知っている人はいますか?

4

2 に答える 2

4

素晴らしいもの jleedev、これはそれをスクリプト化し、ウィンドウに一致するパターンを使用するためのマイナーな調整です。

#!/usr/bin/python

import pygtk
pygtk.require('2.0')
import gtk
import wnck
import re
import sys

if(len(sys.argv) < 2):
  print 'A regex pattern is required to match window titles'
  print 'Usage: wkill <regex>'
  sys.exit(1)

screen = wnck.screen_get_default()
while gtk.events_pending():
    gtk.main_iteration()

titlePattern = re.compile(sys.argv[1])

windows = screen.get_windows()
for w in windows:
  if titlePattern.match(w.get_name()):
    print "Closing window - ", w.get_name()
    w.close(0)
于 2009-11-13T21:20:33.010 に答える
4

絶対に使用したいでしょう (ドキュメントについては、 、Perl バインディング、または単純な C ドキュメントpython-wnckを探す必要があるかもしれません)。python-gnome-extrasWNCK は、画面、ワークスペース、およびウィンドウを簡単に確認できるように作成されています。このようなもの:

import pygtk
pygtk.require('2.0')
import gtk
import wnck

screen = wnck.screen_get_default()
while gtk.events_pending():
    gtk.main_iteration()

windows = screen.get_windows()
for w in windows:
    if w.get_name() == 'foo':
        w.close(0)

...しかし、私はそれをテストしていません。

(また、これは GNOME 固有のものではありません。どのデスクトップ環境でも動作します。)

于 2009-11-13T19:22:55.840 に答える