如何获取运行中应用的图标/图标路径在Linux/Windows中?
我想用Python获取一个打开窗口的列表以及它们的图标。
我觉得用xprop和wmctrl可以做到,但实际上不太适合我的需求。
我可以用wmctrl -l
命令获取打开窗口的列表,但我不知道怎么获取这些窗口的图标或图标路径。
请帮帮我 :)
1 个回答
3
你可以使用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对象。
你可以在这个链接查看libwnck的API文档:http://developer.gnome.org/libwnck/stable/WnckWindow.html,这个文档是针对C语言的。不过,如果你用Python,只需要去掉前面的wnck_window这个部分。如果文档上写的是wnck_window_get_name(),那么在Python中你就可以用my_window.get_name()来代替。
libwnck是专门为XWindow设计的,所以在微软的Windows系统上是不能使用的。在这种情况下,你可以使用其他模块来解决这个问题。可以查看这个链接了解更多:获取Python中打开窗口的列表