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

3 投票
1 回答
3094 浏览
提问于 2025-04-16 16:32

我想用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中打开窗口的列表

撰写回答