使用Process.Start("http://www")有些系统会无效,所以,这样比较保险
var url = "https://www.baidu.com"; if (true) {
var HTTP_KEY = @"SoftwareMicrosoftWindowsShellAssociationsUrlAssociationshttpUserChoice"; var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(HTTP_KEY, false); var progid = key.GetValue("ProgId").ToString(); key = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey($"{progid}\shell\open\command", false); var value = key.GetValue(null); if (value != null) { var path = value.ToString(); if (path.StartsWith(""")) { var exePath = path.Substring(1); var index = exePath.IndexOf("""); exePath = exePath.Substring(0, index); index += 2; var args = path.Substring(index); args = args.Replace("%1", url); System.Diagnostics.Process.Start(exePath, args); return; } } } if (true) { var key = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey("http\shell\open\command", false); var value = key.GetValue(null); if (value != null) { var path = value.ToString(); if (path.StartsWith(""")) { var exePath = path.Substring(1); var index = exePath.IndexOf("""); exePath = exePath.Substring(0, index); index += 2; var args = path.Substring(index); args = args.Replace("%1", url); System.Diagnostics.Process.Start(exePath, args); return; } } } if (true) { System.Diagnostics.Process.Start(@"C:Program FilesInternet ExplorerIEXPLORE.EXE", url); }