将pid与Linux上的应用程序桌面架构匹配

问题描述:

Linux中所有符合标准的应用程序都将桌面架构存储在/ usr/share/applications /中。在我的特殊用例中,我有一个WnckWindow数据结构,我可以从中获得一个pid。使用这个pid,我可以从proc中提取命令行。将pid与Linux上的应用程序桌面架构匹配

不幸的是,似乎proc命令行条目与桌面架构启动参数不匹配。例如,'thunderbird'应用程序是通过/ usr/bin/thunderbird启动的,但这只是一个shell脚本,用于激活真正的可执行文件:/usr/lib/thunderbird-8.0/thunderbird-bin。

真正的可执行文件不能直接启动,因为它依赖于/ usr/bin/thunderbird脚本中配置的库路径。有没有人有任何建议,如何将进程ID号码匹配到适当的桌面模式,而不会被我描述的问题所困扰?,谢谢。

好的,好吧,似乎没有使用pid解决此问题的好方法,但是,将Wnck窗口类与应用程序桌面架构相匹配是相对容易的。 Wnck窗口类需要首先进行一些预处理,以确保过滤器可以正常工作,但这非常简单。一旦您获得了一组好的目标字符串,例如'Thunderbird'或'Google'+'Chrome',您就可以使用系统应用程序菜单API将可能的候选人归零,例如,通过在Xfce上使用garcon。