Программный запуск браузера по умолчанию с помощью Visual C++
В этой статье показано, как запустить интернет-браузер по умолчанию с помощью управляемых расширений для Visual C++.
Исходная версия продукта: Visual C++
Исходный номер базы знаний: 307382
Примечание.
- Сведения о версии Microsoft Visual C# для .NET этой статьи см. в статье Как запустить интернет-браузер по умолчанию программным способом с помощью Visual C#.
- В этой статье рассматриваются пространства
System.Diagnostics.Process
имен библиотеки классов платформа .NET Framework иSystem.Windows.Forms
.
Укажите URL-адрес, FTP или файл для открытия
Можно указать URL-адрес, файл или FTP-адрес. Допустимы все три из этих назначений:
System::String * target= "http://www.microsoft.com";
System::String * target = "ftp://ftp.microsoft.com";
System::String * target = "C:\\Program Files\\Microsoft Visual Studio\\INSTALL.HTM";
Использование метода Process class Start для запуска браузера
Класс Process
содержит статический Start
метод. Так как это статический метод, можно вызвать Start
без экземпляра Process
класса .
System::Diagnostics::Process::Start(target);
Предоставление обработки исключений
Так как при вызове Start
метода используется свойство по умолчаниюUseShellExecute
, вам не нужно явно запрашивать реестр, чтобы определить, какой браузер используется по умолчанию. Однако при использовании этого подхода на компьютере, на котором не установлен браузер, возникает исключение. Это исключение должно быть перехватано, чтобы можно было выполнить соответствующее действие. В этом примере явным образом отображается ошибка, которая возникает при отсутствии необходимого раздела реестра и указывает на то, что браузер не установлен. Кроме того, для других ошибок, которые могут возникнуть, предоставляется общий обработчик исключений. Блок try...catch
показан в полном примере кода.
Полный пример кода
#using <mscorlib.dll>
#using <system.dll>
#using <System.Windows.Forms.dll>
int main()
{
//Use no more than one assignment when you test this code.
//System::String * target= "http://www.microsoft.com";
//System::String * target = "ftp://ftp.microsoft.com";
System::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)
System::Windows::Forms::MessageBox::Show(noBrowser->Message);
}
catch (System::Exception * other)
{
System::Windows::Forms::MessageBox::Show(other->Message);
}
return 0;
}
Устранение неполадок
Этот код в значительной степени зависит от сопоставлений типов приложений и файлов в HKEY_CLASSES_ROOT кусте реестра. Что может привести к непредвиденным результатам и исключениям в случае повреждения реестра. Кроме того, типы файлов и расширения могут быть связаны с приложениями, отличными от браузера. Например, файлы HTM или HTML-файлы могут быть связаны с программным обеспечением веб-разработки, а не с браузером.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по