Поделиться через


Использование 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";

Запуск браузера с помощью метода Start класса Process

Класс Process содержит статический Start метод. Так как это статический метод, можно вызывать Start без экземпляра Process класса.

System.Diagnostics.Process.Start(target);

Дополнительные сведения о классе см. в 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-файлы могут быть связаны с программным обеспечением веб-разработки вместо браузера.