ID do artigo: 224816 - Última revisão: terça-feira, 31 de julho de 2007 - Revisão: 2.1

Usar ShellExecute para iniciar o navegador padrão

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo fornece informações gerais sobre como registrar o navegador padrão e, em seguida, como iniciar o navegador da Web padrão com a interface de programação de aplicativo (API) ShellExecute . Ele também fornece detalhes sobre como ShellExecute faz com que o Microsoft Internet Explorer ir para um (URL).

Mais Informações

Determinar o navegador padrão

Por padrão, o Microsoft Internet Explorer verifica para ver se ele é o navegador padrão cada vez que ele seja iniciado. Se arquivos de documento (HTML) da Internet estiverem associados um navegador diferente quando o Internet Explorer for iniciado, o Internet Explorer reconhece que ele não é o navegador padrão e, em seguida, solicita que você para torná-lo o navegador padrão.

Quando você seleciona tornar este o navegador padrão no Internet Explorer e em versões posteriores do Netscape, o navegador se registra em todas as seguintes chaves para tornar o próprio o navegador padrão (entre outras entradas que são gravadas). HKEY_CLASSES_ROOT\.htm HKEY_CLASSES_ROOT\.html HKEY_CLASSES_ROOT\http\shell\open\command HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Application HKEY_CLASSES_ROOT\ftp\shell\open\command HKEY_CLASSES_ROOT\ftp\shell\open\ddeexec\Application HKEY_CLASSES_ROOT\gopher\shell\open\command HKEY_CLASSES_ROOT\gopher\shell\open\ddeexec\Application


Iniciar o navegador padrão a partir do aplicativo

Chame o API ShellExecute e passe uma URL. Que é a maneira mais fácil para iniciar o navegador padrão do seu aplicativo. Se o navegador da Web padrão for executado no momento, ShellExecute informa a instância que é executado para ir para seu (URL). Se ele não estiver sendo executado, ShellExecute inicia o aplicativo e, em seguida, navega para o URL.

Se você usou Microsoft Visual C++ para desenvolver seu aplicativo, o código a seguir descreve como chamar ShellExecute .
LONG r = ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);
				
se você usou o Microsoft Visual Basic, você deve inserir a declaração ShellExecute no seu projeto. Você pode encontrar essa declaração no arquivo Win32api.txt que está localizado em uma subpasta da instalação do Microsoft Visual Studio. Opcionalmente, você pode copiá-lo da ferramenta API Text Viewer que vem com o Visual Studio 6.0.

Para inserir o API ShellExecute em seu projeto, execute estas etapas:
  1. Crie um novo projeto no Visual Basic.
  2. Seleccione Standard EXE .
  3. Adicione um botão ao formulário.
  4. Coloque o seguinte código no formulário.
    Private Declare Function ShellExecute _
                                Lib "shell32.dll" _
                                Alias "ShellExecuteA"( _
                                ByVal hwnd As Long, _
                                ByVal lpOperation As String, _
                                ByVal lpFile As String, _
                                ByVal lpParameters As String, _
                                ByVal lpDirectory As String, _
                                ByVal nShowCmd As Long) _
                                As Long
    
    Private Sub Command1_Click()
       Dim r As Long
       r = ShellExecute(0, "open", "http://www.microsoft.com", 0, 0, 1)
    End Sub
    						
  5. Execute seu projeto e, em seguida, clique no botão para ir para o URL com o navegador padrão.
A API ShellExecute é com suporte no Microsoft Windows 95 e Microsoft Windows NT 3.1 e posterior. Você pode usar ShellExecute para ativar o navegador padrão no Win32 todas as versões do Microsoft Internet Explorer da versão 1.0 e posterior. Essa técnica não é suportada no Microsoft Windows 3.x, UNIX, ou no MacIntosh plataformas.

Como funciona a ShellExecute

O seguinte plano de fundo é apenas para fins informativos. Ele é fornecido para que você pode compreender melhor como seu aplicativo interage com o sistema operacional. Não baseie seus designs nas pressuposições que você desenhar partir dessas informações. Esteja ciente de que essa funcionalidade pode ser alterado em futuras versões dos produtos Microsoft.

Como ShellExecute interpreta a URL passada

ShellExecute analisa a seqüência de caracteres que é passada para ele para que ShellExecute pode extrair um especificador de protocolo ou uma extensão. Em seguida, ShellExecute examina o registro e, em seguida, usa o especificador de protocolo ou a extensão para determinar qual aplicativo para iniciar. Se você passar http://www.microsoft.com para ShellExecute , ShellExecute reconhece o sub-string http:// como um protocolo, que faz com que ShellExecute exibir
HKEY_CLASSES_ROOT\http\shell\open
para obter informações sobre como executar. Se você passar meu_arquivo.htm para ShellExecute , ShellExecute reconhece o sub-string ".htm" como uma extensão. Isso faz com que ShellExecute exibir
HKEY_CLASSES_ROOT\.htm
, que leva a
HKEY_CLASSES_ROOT\htmlfile\shell\open
.

Geralmente, é melhor especificar totalmente seu URL na seqüência de caracteres que é passada para ShellExecute , por exemplo: http://www.microsoft.com em vez de www.microsoft.com . Quando você especifica a URL totalmente, você se certificar que ShellExecute sabe exatamente qual protocolo você deseja. Por padrão, no entanto, ShellExecute detecta alguns padrões incluem www.* e ftp.* e, em seguida, mapeia esses padrões para o protocolo HTTP (Hypertext Transfer Protocol) e o protocolo FTP (FTP), respectivamente.

Como ShellExecute determina se é para iniciar uma nova instância

Quando ShellExecute examina o registro, ele procura a subchave
shell\open
. Se a chave
shell\open\ddeexec
é definida, em seguida, um intercâmbio dinâmico de dados (DDE) mensagem com o aplicativo especificado IExplore e o tópico WWW_OpenURL é transmitida para todas as janelas de nível superior na área de trabalho. O primeiro aplicativo para responder a esta mensagem é o aplicativo que vai para a URL solicitada. Se nenhum aplicativo responder a esta mensagem DDE, ShellExecute usa as informações contidas na subchave
shell\open\command
para iniciar o aplicativo. Em seguida, ele re-broadcasts a mensagem DDE para ir para a URL solicitada.

Referências

Para obter mais informações sobre o padrão da Web navegadores, clique no seguinte número de artigo para ler o artigo na Base de dados de Conhecimento da Microsoft:
153774  (http://support.microsoft.com/kb/153774/ ) Internet Explorer não configurado como navegador padrão
Os produtos de terceiros mencionados neste artigo são fabricados por empresas que são independentes da Microsoft. Microsoft não oferece garantia, implícita ou não, sobre o desempenho ou confiabilidade desses produtos.

A informação contida neste artigo aplica-se a:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Internet Explorer 3.01
  • Microsoft Internet Explorer 3.02
  • Microsoft Internet Explorer 4.0 Edição de 128 Bits
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer (Programming) 5.01 SP1
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer (Programming) 5.5 SP1
  • Microsoft Internet Explorer (Programming) 5.5 SP2
  • Microsoft Internet Explorer (Programming) 6 (SP1)
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
Palavras-chave: 
kbmt kbinfo kbwebbrowser KB224816 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 224816  (http://support.microsoft.com/kb/224816/en-us/ )