Delen via


Visual C# gebruiken om de standaardbrowser programmatisch te starten

In dit artikel wordt beschreven hoe u de standaardbrowser start met behulp van Visual C#.

Oorspronkelijke productversie: Visual Studio
Oorspronkelijk KB-nummer: 305703

Notitie

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.