Использование Visual C# для программного запуска интернет-браузера по умолчанию

В этой статье показано, как запустить браузер по умолчанию с помощью Visual C#.

Оригинальная версия продукта: Visual Studio
Исходный номер базы знаний: 305703

Примечание.

Укажите 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 class 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) реестра. Если реестр поврежден, это может привести к непредвиденным результатам и исключениям. Кроме того, типы файлов и расширения могут быть связаны с приложениями, отличными от браузера. Например, HTM или HTML-файлы могут быть связаны с программным обеспечением веб-разработки, а не с браузером.