如何在C#中打开主页的默认浏览器?

如何在C#中打开主页的默认浏览器?,c#,browser,C#,Browser,下面的问题回答了“如何在C#中打开URL的默认浏览器?”但如何在不导航到URL的情况下在C#中打开默认浏览器?所需的行为是默认浏览器打开主页,或使用启动行为(例如,在Firefox选项“When Firefox Start”(当Firefox启动时)中定义) 这应该可以做到: Process p = new Process(); p.StartInfo = new StartInfo(url) {UseShellExecute = true}; p.Start(); 编辑:这将适用于有效的UR

下面的问题回答了“如何在C#中打开URL的默认浏览器?”但如何在不导航到URL的情况下在C#中打开默认浏览器?所需的行为是默认浏览器打开主页,或使用启动行为(例如,在Firefox选项“When Firefox Start”(当Firefox启动时)中定义)

这应该可以做到:

Process p = new Process();
p.StartInfo = new StartInfo(url) {UseShellExecute = true};
p.Start();
编辑:这将适用于有效的URL。正如上面的评论所说,这对我们来说是行不通的

编辑#2:我将保留以前的代码,以防它对任何人都有帮助。由于上面的评论,我一直在寻找如何做到这一点,实际上并不是那么简单,这是我为了启动默认浏览器而做的,而无需导航到任何
URL

using (var assoc = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice"))
{
    using (var cr = Registry.ClassesRoot.OpenSubKey(assoc.GetValue("ProgId") + @"\shell\open\command"))
    {
        string loc = cr.GetValue("").ToString().Split('"')[1];
        // In windows 10 if Microsoft edge is the default browser 
        // loc=C:\Windows\system32\LaunchWinApp.exe, so launch Microsoft Edge manually
        // 'cause didn't figured it out how to launc ME with that exe
        if (Path.GetFileNameWithoutExtension(loc) == "LaunchWinApp")
            Process.Start("explorer", @"shell:Appsfolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge");
        else
            Process.Start(loc);
    }
}

我在我的机器(Win10)上测试了它,并针对每个默认浏览器开关进行了计算。希望现在能有所帮助。

您想在哪个操作系统上执行此操作?这并不容易,因为您想要的URL是关于:home,但您不能将其交给操作系统。这意味着您必须确定默认浏览器是什么,获取其路径,然后将URL作为命令行参数传递。@itsme86,平台是WPF,Windows 7/8/10。您可以从阅读开始查找默认浏览器命令行。然后,只需读取注册表(在C#中很简单),然后使用运行注册表项中指定的命令。OP特别说明“但是如何在不导航到URL的情况下在C#中打开默认浏览器”。您的答案需要一个URL才能导航到。你看到问题了吧?@itsme86我更新了我的答案。谢谢你的评论。