Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird veranschaulicht, wie Sie den Standard-Internetbrowser mithilfe von verwalteten Erweiterungen für Visual C++ starten.
Originalproduktversion: Visual C++
Ursprüngliche KB-Nummer: 307382
Notiz
- Eine Microsoft Visual C#-.NET-Version dieses Artikels finden Sie unter "Programmgesteuertes Starten des Standardmäßigen Internetbrowsers mithilfe von Visual C#".
- Dieser Artikel bezieht sich auf die Namespaces
System.Diagnostics.Processder .NET Framework-Klassenbibliothek undSystem.Windows.Forms.
Geben Sie die URL, ftp oder Datei an, die geöffnet werden soll.
Sie können eine URL (Uniform Resource Locator), eine Datei oder eine FTP-Adresse (File Transfer Protocol) angeben. Alle drei dieser Zuordnungen sind gültig:
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";
Verwenden der Process-Klasse Startmethode zum Starten des Browsers
Die Process Klasse enthält eine statische Start Methode. Da es sich um eine statische Methode handelt, können Sie aufrufen Start , ohne eine Instanz einer Process Klasse zu haben.
System::Diagnostics::Process::Start(target);
Bereitstellen der Ausnahmebehandlung
Da Sie beim Aufrufen der Start Methode die Standardeigenschaft UseShellExecute nutzen, müssen Sie die Registrierung nicht explizit abfragen, um zu ermitteln, welcher Browser der Standard ist. Wenn Sie diesen Ansatz jedoch auf einem Computer verwenden, auf dem kein Browser installiert ist, tritt eine Ausnahme auf. Diese Ausnahme muss abgefangen werden, damit die entsprechende Aktion ausgeführt werden kann. In diesem Beispiel wird explizit ein Fehler ausgeführt, der generiert wird, wenn der erforderliche Registrierungsschlüssel nicht gefunden wird, und gibt an, dass kein Browser installiert ist. Darüber hinaus wird ein allgemeiner Ausnahmehandler für andere Fehler bereitgestellt, die auftreten können. Der try...catch Block wird im vollständigen Codebeispiel veranschaulicht.
Vollständiges Codebeispiel
#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;
}
Problembehandlung
Dieser Code ist stark von den Zuordnungen des Anwendungsdateityps in der HKEY_CLASSES_ROOT Struktur der Registrierung abhängig. Dies kann zu unerwarteten Ergebnissen und Ausnahmen führen, wenn die Registrierung beschädigt ist. Darüber hinaus können Dateitypen und Erweiterungen anderen Anwendungen als dem Browser zugeordnet werden. Beispielsweise können HTM- oder HTML-Dateien (Hyper Text Markup Language) anstelle des Browsers webentwicklungssoftware zugeordnet werden.