用Mono + gtk打开默认浏览器#

我需要从我的应用程序,在Linux和Windows上打开一个URL,我想避免在一个打开的浏览器上replace现有的页面。

我如何要求它打开?

我知道我可以使用

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

这也应该在Linux下工作,但是这将取代已经打开的浏览器窗口上显示的任何页面。

我发现这篇文章(thx 日产范 ):

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

但这只适用于Windows,我需要一个解决scheme,将在两个系统上工作。

我想这是你想要的:

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

这只会在Linux上工作,但应该适用于所有的Linux桌面。 就像grombeestje说的那样,你可能应该分别为Windows和Linux实现它。

我会建议检查什么操作系统的应用程序正在运行,然后分别为每个操作系统实施。

通过搜索Banshee源代码后,我发现他们使用Gnome.Url.Show() (在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");