2010-09-13 33 views
1

我正在使用Firefox NPAPI插件+ XPCOM组件。我遇到了一个困境:给定从互联网上下载的文件(比如PDF或PNG),如何启动默认助手应用程序以使用C/C++在Linux上显示该文件?在Linux上启动文件的默认应用程序

当前我使用system函数调用来调用gnome-open命令并将它传递给文件路径。这适用于GNOME桌面,但它不适用于具有不同桌面环境(包括KDE)的Linux平台。

所以我的问题是:是否有一个标准的统一方法去做到这一点?有什么建议吗?任何帮助将不胜感激!

回答

4

xdg-open命令是在用户的首选应用程序中打开文件或URL的标准方式。

它应该在不同的桌面环境下正常工作。

1

在Linux中没有使用默认应用程序打开文件的标准工具。这取决于桌面环境。对于侏儒,你会发现一个“侏儒开放”的工具。 KDE为了同样的目的而拥有“kde-open”。我会先检查gnome-open,如果它不存在,请检查kde-open。否则,向用户报告错误。

另一种选择是使用Firefox本身使用“file://”协议打开文件。如果安装了适当的插件,Firefox能够显示PDF文件,显示文本文件等。

+0

有一个标准的工具已经被解释过了。参见[xdg-utils](https://www.freedesktop.org/wiki/Software/xdg-utils/)。它不依赖于桌面环境,因为有很多规范处理这种与桌面无关的事情,请参阅[mime app spec](https://www.freedesktop.org/wiki/Specifications/mime-apps -spec /)。 Ofc,每个桌面环境都喜欢做自己的事情,这就是为什么xdg-open如果存在,也会调用gnome-open/kde-open。 – hasufell 2016-04-10 03:29:46

相关问题