如何在Linux/Windows中获取正在运行应用程序的图标或图标路径?

3

我希望能够使用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。

您可以阅读C语言版本的libwnck API文档,网址为http://developer.gnome.org/libwnck/stable/WnckWindow.html。但是,在Python中,您只需要删除前缀wncK_window。如果文档中写的是wnck_window_get_name(),那么在Python中就是my_window.get_name()。

libwnk专门针对XWindow,因此无法在MS Windows上使用。在这种情况下,您可以使用其他模块来帮助实现该功能。请参考Get list of open windows in Python的答案。


这就是我想要的,你真是个天才。你有没有任何想法如何在 MS Windows 上处理它? - xliiv
@xliiv,我添加了一个类似问题的参考链接,但仅限于MS Windows。该问题由@reckoner回答。 - gpoo
sudo apt-get install python-wnck 将解决 'ImportError: No module named wnck' 的问题。 - Luke Stanley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接