Вы можете использовать модули wnck и gtk.
Например:
import pygtk
pygtk.require('2.0')
import gtk
import wnck
screen = wnck.screen_get_default()
while gtk.events_pending():
gtk.main_iteration(False)
for w in screen.get_windows():
name = w.get_name()
icon = w.get_icon()
...
Где name - строка, а icon - GdkPixbuf. * 1010 *
Вы можете прочитать документацию API для libwnck по адресу http://developer.gnome.org/libwnck/stable/WnckWindow.html,, что для C. Однако для Python вам нужно только удалить префикс wncK_window. Если в документации написано wnck_window_get_name (), то в Python будет my_window.get_name ().
libwnk специфичен для XWindow, поэтому его нельзя использовать в MS Windows. В этом случае вы можете использовать другие модули, которые точно помогают в этом. Проверьте ответ для Получить список открытых окон в Python