Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u de standaardbrowser start met behulp van Visual C#.
Oorspronkelijke productversie: Visual Studio
Oorspronkelijk KB-nummer: 305703
Notitie
- Dit artikel verwijst naar de Naamruimte
System.Diagnostics
van de Microsoft .NET Framework-klassebibliotheek. - Zie Voor een Visual C++ .NET-versie van dit artikel programmatisch de standaard internetbrowser starten met behulp van Visual C++.
Geef de URL, FTP of het bestand op dat moet worden geopend
U kunt een URL, een bestand of een FTP-adres (File Transfer Protocol) opgeven. Alle drie deze toewijzingen zijn geldig:
string target= "http://www.microsoft.com";
string target = "ftp://ftp.microsoft.com";
string target = "C:\\Program Files\\Microsoft Visual Studio\\INSTALL.HTM";
De methode Start van procesklasse gebruiken om de browser te starten
De Process
klasse bevat een statische Start
methode. Omdat het een statische methode is, kunt u aanroepen Start
zonder een exemplaar van een Process
klasse te hebben.
System.Diagnostics.Process.Start(target);
Zie Procesklasse voor meer informatie over de Process
klasse.
Afhandeling van uitzonderingen opgeven
Omdat u profiteert van de standaardeigenschap UseShellExecute
wanneer u de Start
methode aanroept, hoeft u niet expliciet een query uit te voeren op het register om te bepalen welke browser de standaardwaarde is. Als u deze methode echter gebruikt op een computer waarop geen browser is geïnstalleerd, treedt er een uitzondering op. Deze uitzondering moet worden betrapt, zodat de juiste actie kan worden ondernomen.
In dit voorbeeld wordt expliciet een trap uitgevoerd op een fout die wordt gegenereerd wanneer de benodigde registersleutel niet wordt gevonden en wordt aangegeven dat er geen browser is geïnstalleerd. Daarnaast wordt een algemene uitzonderingshandler verstrekt voor andere fouten die kunnen optreden. Het try...catch
blok wordt gedemonstreerd in de volledige codevermelding.
Codevoorbeeld voltooien
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);
}
Probleemoplossing
Deze code is sterk afhankelijk van de toepassingsbestandstypen in de HKEY_CLASSES_ROOT (HKCR) hive van het register. Dit kan leiden tot onverwachte resultaten en uitzonderingen als het register beschadigd is. Daarnaast kunnen bestandstypen en -extensies worden gekoppeld aan andere toepassingen dan de browser. HTM- of HTML-bestanden kunnen bijvoorbeeld worden gekoppeld aan webontwikkelingssoftware in plaats van de browser.