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
- Questo articolo fa riferimento allo spazio dei nomi
System.Diagnostics
della libreria di classi di Microsoft .NET Framework. - Per una versione di Visual C++ .NET di questo articolo, vedere Come avviare a livello di codice il browser Internet predefinito usando Visual C++.
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.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: nel corso del 2024 verranno dismessi i problemi di GitHub come meccanismo di feedback per il contenuto e verranno sostituiti con un nuovo sistema di feedback. Per altre informazioni, vedere:Invia e visualizza il feedback per