Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用Mono+打开默认浏览器;gtk#_Windows_Linux_Mono_Webbrowser Control_Gtk# - Fatal编程技术网

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

Windows 使用Mono+打开默认浏览器;gtk#,windows,linux,mono,webbrowser-control,gtk#,Windows,Linux,Mono,Webbrowser Control,Gtk#,我需要在linux和windows上从我的应用程序中打开一个url,并且我希望避免替换开放浏览器上的现有页面 我怎么叫它开门 我知道我可以用 System.Diagnostics.Process.Start("http://mysite.com"); 它也可以在linux下工作,但这将替换已经打开的浏览器窗口上显示的任何页面 我发现这篇文章(thx至): System.Diagnostics.Process.Start(“”) 但这只适用于windows,我需要一个在两个系统上都能工作的解决方

我需要在linux和windows上从我的应用程序中打开一个url,并且我希望避免替换开放浏览器上的现有页面

我怎么叫它开门

我知道我可以用

System.Diagnostics.Process.Start("http://mysite.com");
它也可以在linux下工作,但这将替换已经打开的浏览器窗口上显示的任何页面

我发现这篇文章(thx至):

System.Diagnostics.Process.Start(“”)


但这只适用于windows,我需要一个在两个系统上都能工作的解决方案。

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

在搜索Banshee源代码后,我发现它们使用
Gnome.Url.Show()
(在Gnome sharp中)打开用户的默认浏览器

如果出于任何原因,这是不可能的,那么我会想到一些其他的想法

如果用户正在运行Gnome,那么应该有一个名为“Gnome open”的程序来完成这个任务

System.Diagnostics.Process.Start("gnome-open http://mysite.com");
如果这不起作用,我知道(至少)所有基于Debian的系统都有一个名为Sensive browser的脚本

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

我想这就是你想要的:

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

这只适用于linux,但应适用于所有linux桌面。正如grombeestje所说,您可能应该在Windows和linux上分别实现它。

我还发现了xdg open,它看起来像一个跨桌面gnome-open。请注意,Process.Start单独使用可执行文件名/路径的参数:Process.Start(“xdg open”,”)另外,请注意,显式使用xdg open是非常冗余的,因为Process.Start(“”)在Linux上使用“xdg open”(带有一些回退),在MacOS上使用“open”,在Windows上使用shellexec。