Usare Visual C# per avviare il browser Internet predefinito a livello di codice

Questo articolo illustra come avviare il browser Internet predefinito usando Visual C#.

Versione originale del prodotto: Visual Studio
Numero KB originale: 305703

Nota

Specificare l'URL, ftp o il file da aprire

È possibile specificare un URL, un file o un indirizzo FTP (File Transfer Protocol). Tutte e tre le assegnazioni sono valide:

string target= "http://www.microsoft.com";
string target = "ftp://ftp.microsoft.com";
string target = "C:\\Program Files\\Microsoft Visual Studio\\INSTALL.HTM";

Usare il metodo Start della classe Process per avviare il browser

La Process classe contiene un metodo statico Start . Poiché si tratta di un metodo statico, è possibile chiamare Start senza avere un'istanza di una Process classe.

System.Diagnostics.Process.Start(target);

Per altre informazioni sulla Process classe , vedere Classe Process.

Fornire la gestione delle eccezioni

Poiché si sfrutta la proprietà predefinita UseShellExecute quando si chiama il Start metodo , non è necessario eseguire una query esplicita nel Registro di sistema per determinare quale browser è l'impostazione predefinita. Tuttavia, se si usa questo approccio in un computer in cui non è installato un browser, si verifica un'eccezione. Questa eccezione deve essere intercettata in modo da poter intraprendere l'azione appropriata.

Questo esempio intercetta in modo esplicito un errore generato quando non viene trovata la chiave del Registro di sistema necessaria e indica che non è installato alcun browser. Inoltre, viene fornito un gestore di eccezioni generale per altri errori che possono verificarsi. Il try...catch blocco viene illustrato nell'elenco di codice completo.

Esempio di codice completo

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);
}

Risoluzione dei problemi

Questo codice è altamente dipendente dalle associazioni dei tipi di file dell'applicazione nell'hive HKEY_CLASSES_ROOT (HKCR) del Registro di sistema. Può causare risultati imprevisti ed eccezioni se il Registro di sistema è danneggiato. Inoltre, i tipi di file e le estensioni possono essere associati ad applicazioni diverse dal browser. Ad esempio, i file HTM o HTML possono essere associati al software di sviluppo Web anziché al browser.