使用 Visual C# 以编程方式启动默认 Internet 浏览器

本文介绍如何使用 Visual C# 启动默认 Internet 浏览器。

原始产品版本: Visual Studio
原始 KB 数: 305703

注意

  • 本文介绍Microsoft .NET Framework 类库命名空间 System.Diagnostics
  • 有关本文的 Visual C++ .NET 版本,请参阅 如何使用 Visual C++ 以编程方式启动默认的 Internet 浏览器。

指定要打开的 URL、FTP 或文件

可以指定 URL、文件或文件传输协议 (FTP) 地址。 这三个分配都是有效的:

string target= "http://www.microsoft.com";
string target = "ftp://ftp.microsoft.com";
string target = "C:\\Program Files\\Microsoft Visual Studio\\INSTALL.HTM";

使用 Process 类 Start 方法启动浏览器

Process 类包含静态 Start 方法。 因为它是静态方法,因此无需类的Process实例即可调用Start

System.Diagnostics.Process.Start(target);

有关该 Process 类的详细信息,请参阅 Process 类

提供异常处理

由于在调用Start方法时利用默认UseShellExecute属性,因此无需显式查询注册表以确定哪个浏览器是默认浏览器。 但是,如果在未安装浏览器的计算机上使用此方法,则会发生异常。 必须捕获此异常,以便可以采取适当的操作。

本示例显式捕获未找到必要的注册表项时生成的错误,并指示未安装浏览器。 此外,还会为可能发生的其他错误提供常规异常处理程序。 此 try...catch 块在完整的代码列表中演示。

完整的代码示例

string target= "http://www.microsoft.com";
//Use no more than one assignment when you test this code.
//string target = "ftp://ftp.microsoft.com";
//string target = "C:\\Program Files\\Microsoft Visual Studio\\INSTALL.HTM";
try
{
    System.Diagnostics.Process.Start(target);
}
catch (System.ComponentModel.Win32Exception noBrowser)
{
    if (noBrowser.ErrorCode==-2147467259)
    MessageBox.Show(noBrowser.Message);
}
catch (System.Exception other)
{
    MessageBox.Show(other.Message);
}

故障排除

此代码高度依赖于注册表HKEY_CLASSES_ROOT(HKCR)配置单元中的应用程序文件类型关联。 如果注册表损坏,可能会导致意外结果和异常。 此外,文件类型和扩展可能与浏览器以外的应用程序相关联。 例如,HTM 或 HTML 文件可能与 Web 开发软件(而不是浏览器)相关联。