Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / programming / Internet

Opening the Internet Browser Programmatically

0.00/5 (No votes)
17 Aug 2011CPOL 13.4K  
If I remember correctly, then I had some issues with the above method some years ago. It would not always work on some systems.I personally use the following method to get the EXE path to the system's default browser:public static string GetDefaultBrowser(){ string browser =...
If I remember correctly, then I had some issues with the above method some years ago. It would not always work on some systems.

I personally use the following method to get the EXE path to the system's default browser:

C#
public static string GetDefaultBrowser()
{
    string browser = string.Empty;
    Microsoft.Win32.RegistryKey key = null;
    try
    {
	object obj = null;
	key = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(@"HTTP\shell\open\command", false);
	if (key != null)
	{
	    obj = key.GetValue(null);
	    if (obj != null)
	    {
		browser = Convert.ToString(obj);
	    }
	}

	if(string.IsNullOrEmpty(browser))
	{
	    key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Classes\Applications\iexplore.exe\shell\open\command", false);

	    obj = key.GetValue(null);
	    if (obj != null)
	    {
		browser = Convert.ToString(obj);
	    }
	}

	if (!string.IsNullOrEmpty(browser))
	{
	    //trim off quotes
	    browser = key.GetValue(null).ToString().ToLower().Replace("\"", "");
	    if (!browser.EndsWith("exe"))
	    {
		//get rid of everything after the ".exe"
		browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4);
	    }

	    //Enable quotes again
	    browser = '"' + browser + '"';

	    return browser;
	}
    }
    catch
    {
	//noop
    }
    finally
    {
	if (key != null) key.Close();
    }

    return string.Empty;
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)