【问题标题】:Open Default browser with Mono+gtk#使用 Mono+gtk 打开默认浏览器#
【发布时间】:2009-10-14 08:41:10
【问题描述】:

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

如何调用它打开?

我知道我可以使用

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

这也应该在 linux 下工作,但这将替换已打开的浏览器窗口上显示的任何页面。

我找到了这篇文章(感谢Nissan Fan):

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

但这仅适用于 Windows,我需要一个适用于两个系统的解决方案。

【问题讨论】:

    标签: windows linux mono webbrowser-control gtk#


    【解决方案1】:

    我想这就是你想要的:

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

    这仅适用于 linux,但应该适用于所有 linux 桌面。就像 grombeestje 说的,你可能应该为 Windows 和 linux 分别实现它。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        在搜索 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");
        

        【讨论】:

        • 我还发现了 xdg-open,它看起来像一个跨桌面的 gnome-open。
        • 请注意,Process.Start 将参数单独用于可执行文件名称/路径:Process.Start ("xdg-open", "example.com")。另外,请注意,显式使用 xdg-open 很漂亮多余的,因为 Process.Start (""example.com") 在 Linux 上使用“xdg-open”(有一些备用),在 MacOS 上使用“open”,在 Windows 上使用 shellexec。
        猜你喜欢
        • 2014-12-06
        • 2021-03-26
        • 1970-01-01
        • 2011-07-01
        • 2011-11-19
        • 1970-01-01
        • 2011-05-30
        • 2010-09-14
        相关资源
        最近更新 更多