2009-10-14 59 views
2

我需要在我的應用程序中打開一個url,在linux和windows上,我希望避免在打開的瀏覽器中替換現有頁面。使用Mono + gtk打開默認瀏覽器#

我該如何打電話?

我知道我可以使用

System.Diagnostics.Process.Start("http://mysite.com"); 

這應該也是在linux下工作,但是這將替換已經打開的瀏覽器窗口上顯示的任何頁面。

我發現這篇文章(Thx至Nissan Fan):

System.Diagnostics.Process.Start( 「http://mysite.com」);

但這隻適用於Windows,我需要一個解決方案,將在兩個系統上工作。

回答

0

我會建議檢查應用程序正在運行的操作系統,然後分別爲每個操作系統實施它。

0

通過搜索Banshee源代碼後,我看到他們使用​​(在gnome-sharp中)打開用戶默認瀏覽器。

如果無論出於何種原因,這是不可能的,那麼其他一些想法就會浮現出來。

如果用戶正在運行Gnome,則應該有一個名爲「gnome-open」的程序應該這樣做。

System.Diagnostics.Process.Start("gnome-open http://mysite.com"); 

如果這不起作用,我知道(至少)所有基於Debian的系統都帶有一個名爲sensible-browser的腳本。

System.Diagnostics.Process.Start("sensible-browser http://mysite.com"); 
+1

我還發現了xdg-open,它看起來像是一個跨桌面的gnome-open。 – 2009-10-14 12:08:57

+4

請注意,Process.Start分別將參數傳遞給可執行文件名稱/路徑:Process.Start(「xdg-open」,「http://example.com」)。另外,請注意,顯式使用xdg-open是相當多餘的,因爲Process.Start(「」http://example.com「)在Linux上使用」xdg-open「(有一些回退),在MacOS上使用」open「,shellexec在Windows上。 – 2009-10-14 18:48:32

3

我想這是你想要什麼:

System.Diagnostics.Process.Start ("xdg-open http://mysite.com"); 

這隻會在Linux上運行,但應爲所有Linux桌面工作。就像grombeestje說的那樣,你可能應該分別爲Windows和Linux實現它。

相關問題