Использование Visual C# для программного запуска интернет-браузера по умолчанию
В этой статье показано, как запустить браузер по умолчанию с помощью Visual C#.
Оригинальная версия продукта: Visual Studio
Исходный номер базы знаний: 305703
Примечание.
- В этой статье описывается пространство
System.Diagnostics
имен библиотеки классов Microsoft платформа .NET Framework . - Сведения о версии .NET для Visual C++ этой статьи см. в статье Как программным способом запустить интернет-браузер по умолчанию с помощью 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 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-файлы могут быть связаны с программным обеспечением веб-разработки, а не с браузером.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по