C#
private void OpenUrl( string url) { string browser = GetDefaultBrowser(); if ( browser.Length > 0 ) { ProcessStartInfo psi = new ProcessStartInfo(); psi.UseShellExecute = false; psi.Arguments = url; psi.FileName = browser; System.Diagnostics.Process.Start(psi); } else { System.Diagnostics.Process.Start(url); } } private string GetDefaultBrowser() { string browser = String.Empty; RegistryKey key = null; try { key = Registry.ClassesRoot.OpenSubKey(@"HTTP\shell\open\command", false); browser = key.GetValue( null).ToString().ToLower().Replace("\"", ""); if ( !browser.EndsWith(".exe") ) { browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4); } } catch { if ( key != null ) { key.Close(); } } return browser; }
VB.NET Private Sub OpenUrl() Sub OpenUrl( ByRef url As String ) Dim browser As String = GetDefaultBrowser() If browser.Length > 0 Then Dim psi As ProcessStartInfo = New ProcessStartInfo psi.UseShellExecute = False psi.Arguments = url psi.FileName = browser System.Diagnostics.Process.Start(psi) Else System.Diagnostics.Process.Start(url) End If End Sub Private Function GetDefaultBrowser() Function GetDefaultBrowser() Dim browser As String = String.Empty Dim key As RegistryKey Try key = Registry.ClassesRoot.OpenSubKey("HTTP\shell\open\command", False) browser = key.GetValue( Nothing).ToString().ToLower().Replace("""", "") If Not browser.EndsWith(".exe") Then browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4) End If Catch ex As Exception If Not key Is Nothing Then key.Close() End If End Try GetDefaultBrowser = browser End Function