将pid与Linux上的应用程序桌面模式匹配



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

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

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

好吧,看来没有很好的方法可以使用pid来解决这个问题,但是,将Wnck窗口类与应用程序桌面模式相匹配是相对容易的。Wnck窗口类需要先进行一些预处理,以确保过滤器工作,但这是相当琐碎的事情。一旦你有了一组好的目标字符串,例如"雷鸟"或"谷歌"+"Chrome",你可以使用系统应用程序菜单API来锁定一个可能的候选对象,例如,在Xfce上使用garcon。

最新更新