2010-09-13 28 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

相關問題