Code: Open URL by a New Browser

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( 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()
    
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

posted on   birdshome  阅读(1252)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器

导航

点击右上角即可分享
微信分享提示