DefaultBrowser from Registry doesn't work
I'm trying to open a url in the default browser. Obviously I thought that Shell Exec will open it in the default browser but it doesn't.
Then I tried explicit:
Process.Start(GetDefaultBrow开发者_如何学GoserPath(), "http://stackoverflow.com");
private static string GetDefaultBrowserPath()
{
    string key = @"htmlfile\shell\open\command";
    RegistryKey registryKey =
    Registry.ClassesRoot.OpenSubKey(key, false);
    // get default browser path
    return ((string)registryKey.GetValue(null, null)).Split('"')[1];
}
It always returns Internet Explorer but not my default which is Firefox. I tried it on several computers...
I don't care which way to call the link in the default browser, but it has to be the default
Have you tried just running:
Process.Start("http://stackoverflow.com");
My test application (below) opens the site in my default browser:
using System;
using System.Diagnostics;
namespace ProcessStartSample
{
    class Program
    {
        static void Main(string[] args)
        {
            Process.Start("http://stackoverflow.com");
        }
    }
}
In other words, let the operating system do the heavy work of working out what the users default browser is for you! =)
Just Try this :)
Process.Start("http://stackoverflow.com");
And if you want to find your default browser you should open HKEY_CLASSES_ROOT\http\shell\open\command\default key.
Please pay attention "http" not "htmlFile"
EDIT:
CODE:
RegistryKey registryKey = Registry.ClassesRoot.OpenSubKey(@"http\shell\open\command", false);
string value = registryKey.GetValue("").ToString();
Windows will start the default browser on the user's system for you automatically if you just specify the URL to open:
Process.Start("http://www.google.com/");
No need for any fancy Registry trickery, unless you are trying to ascertain which browser is set as the default.
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论