Condividi tramite


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

Note

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 queste 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 query in modo esplicito 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 che sia possibile eseguire l'azione appropriata.

Questo esempio intercettare in modo esplicito un errore generato quando la chiave del Registro di sistema necessaria non viene trovata 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 dipende in modo elevato 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.