共用方式為


使用 Visual C# 以程式設計方式啟動預設因特網瀏覽器

本文說明如何使用 Visual C# 啟動預設因特網瀏覽器。

原始產品版本: Visual Studio
原始 KB 編號: 305703

注意

  • 本文參考Microsoft .NET Framework 類別庫命名空間 System.Diagnostics
  • 如需本文的 Visual C++ .NET 版本,請參閱 如何使用 Visual C++以程式設計方式啟動預設因特網瀏覽器。

指定要開啟的 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 方法。 因為它是靜態方法,所以您可以呼叫 Start ,而不需要類別的 Process 實例。

System.Diagnostics.Process.Start(target);

如需 類別 Process 的詳細資訊,請參閱 Process Class

提供例外狀況處理

由於您在呼叫 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) hive 中的應用程式檔類型關聯。 如果登錄損毀,可能會導致非預期的結果和例外狀況。 此外,檔案類型和延伸模組可能會與瀏覽器以外的應用程式相關聯。 例如,HTM 或 HTML 檔案可能與網頁程式開發軟體相關聯,而不是瀏覽器。