Usar o Visual C# para iniciar o navegador de Internet padrão programaticamente
Este artigo mostra como iniciar o navegador de Internet padrão usando o Visual C#.
Versão original do produto: Visual Studio
Número de KB original: 305703
Observação
- Este artigo refere-se ao namespace
System.Diagnostics
da Biblioteca de Classes do Microsoft .NET Framework . - Para obter uma versão do .NET do Visual C++ deste artigo, consulte Como iniciar programaticamente o navegador padrão da Internet usando o Visual C++.
Especificar a URL, o FTP ou o arquivo a ser aberto
Você pode especificar uma URL, um arquivo ou um endereço FTP (Protocolo de Transferência de Arquivo). Todas essas três atribuições são válidas:
string target= "http://www.microsoft.com";
string target = "ftp://ftp.microsoft.com";
string target = "C:\\Program Files\\Microsoft Visual Studio\\INSTALL.HTM";
Usar o método Iniciar classe de processo para iniciar o navegador
A Process
classe contém um método estático Start
. Como é um método estático, você pode chamar Start
sem ter uma instância de uma Process
classe.
System.Diagnostics.Process.Start(target);
Para obter mais informações sobre a Process
classe, consulte Classe de Processo.
Fornecer tratamento de exceção
Como você aproveita a propriedade padrão UseShellExecute
ao chamar o Start
método, não precisa consultar explicitamente o registro para determinar qual navegador é o padrão. No entanto, se você usar essa abordagem em um computador que não tenha um navegador instalado, ocorrerá uma exceção. Essa exceção deve ser capturada para que a ação apropriada possa ser tomada.
Este exemplo prende explicitamente um erro gerado quando a chave de registro necessária não é encontrada e indica que nenhum navegador está instalado. Além disso, um manipulador de exceção geral é fornecido para outros erros que podem ocorrer. O try...catch
bloco é demonstrado na listagem de código completa.
Exemplo de código 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);
}
Solução de problemas
Esse código é altamente dependente das associações de tipo de arquivo de aplicativo no hive do HKCR (HKEY_CLASSES_ROOT) do registro. Isso pode levar a resultados inesperados e exceções se o registro for danificado. Além disso, tipos de arquivo e extensões podem estar associados a aplicativos diferentes do navegador. Por exemplo, arquivos HTM ou HTML podem estar associados ao software de desenvolvimento da Web em vez do navegador.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários