Artigo: 224816 - Última revisão: terça-feira, 31 de Julho de 2007 - Revisão: 2.1

Utilize ShellExecute para iniciar o browser predefinido

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 | Reduzir tudo

Sumário

Este artigo fornece informações gerais sobre como registar o browser predefinido e, em seguida iniciar o browser predefinido com a interface de programação de aplicações (API) ShellExecute . Também fornece detalhes sobre como ShellExecute faz com que ir para um URL (Uniform Resource Locator) do Microsoft Internet Explorer.

Mais Informação

Determinar o browser predefinido

Por predefinição, o Microsoft Internet Explorer verifica se que é o Web browser predefinido sempre que for iniciado. Se os ficheiros da Internet (HTML) do documento estiverem associados um browser diferente quando o Internet Explorer é iniciado, o Internet Explorer reconhece que não é o browser predefinido e, em seguida, pede-lhe para facilitar o browser predefinido.

Quando selecciona a tornar o browser predefinido no Internet Explorer e em versões posteriores do Netscape, o browser regista-se em todas as seguintes chaves efectuar se o browser predefinido (entre outras entradas que são escritos). 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 browser predefinido a partir da sua aplicação

Chamar ShellExecute API e a transmitem um URL. Que é a forma mais fácil de iniciar o browser predefinido a partir da aplicação. Se o browser predefinido actualmente é executado, ShellExecute indica a instância que é executado para ir para o URL (Uniform Resource Locator). Se não está a ser executado, ShellExecute inicia a aplicação e, em seguida, navega para o URL.

Se utilizou o Microsoft Visual C++ para desenvolver a aplicação, o código seguinte descreve como chamar ShellExecute .
LONG r = ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);
				
se utilizou o Microsoft Visual Basic, tem de inserir a declaração de ShellExecute no projecto. Pode encontrar esta declaração no ficheiro Win32api.txt que está localizado numa subpasta da instalação do Microsoft Visual Studio. Opcionalmente, pode copiar da ferramenta API Text Viewer que acompanha o Visual Studio 6.0.

Para inserir ShellExecute API no projecto, siga estes passos:
  1. Crie um novo projecto no Visual Basic.
  2. Seleccione Standard EXE .
  3. Adicionar um botão ao formulário.
  4. Coloque o código seguinte 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 o projecto e, em seguida, clique no botão para ir para o URL com o browser predefinido.
ShellExecute API é suportada no Microsoft Windows 95 e Microsoft Windows NT 3.1 e posterior. Pode utilizar ShellExecute para activar o browser predefinido no Win32 todas as versões do Microsoft Internet Explorer versão 1.0 e versões posteriores. Esta técnica não é suportada no Microsoft Windows 3.x, UNIX, ou em MacIntosh plataformas.

Como funciona a ShellExecute

O fundo seguinte é de carácter meramente informativo. É fornecido para que possa melhor compreender como a aplicação interage com o sistema operativo. Não base as estruturas nos pressupostos que desenhe a partir destas informações. Tenha em atenção que esta funcionalidade poderá ser alterado em futuras versões de produtos da Microsoft.

Como ShellExecute interpreta o URL transmitido

ShellExecute analisa a cadeia que é transferida ao mesmo poder ShellExecute pode extrair um especificador de protocolo ou uma extensão. Em seguida, ShellExecute procura num registo e, em seguida, utiliza o especificador de protocolo ou a extensão para determinar a aplicação a iniciar. Se passar http://www.microsoft.com para ShellExecute , ShellExecute reconhece o sub-string http:// como um protocolo, que faz com que ShellExecute ver informações sobre como executar
HKEY_CLASSES_ROOT\http\shell\open
. Se passar Meuficheiro.htm para ShellExecute , ShellExecute reconhece o sub-string ".htm" como uma extensão. Isto faz com que ShellExecute visualizar
HKEY_CLASSES_ROOT\.htm
, que conduz a
HKEY_CLASSES_ROOT\htmlfile\shell\open
.

Normalmente, recomenda-se totalmente especificar o URL na cadeia é passada para ShellExecute , por exemplo: http://www.microsoft.com em vez de www.microsoft.com . Quando totalmente especifique o URL, certifique-se de que ShellExecute sabe exactamente o protocolo que pretende. Por predefinição, no entanto, ShellExecute detectar alguns padrões que incluem www.* e ftp.* e, em seguida, mapeia os padrões para o protocolo de protocolo de transferência de hipertexto (HTTP, Hypertext Transfer Protocol) e o protocolo de transferência de ficheiros (FTP), respectivamente.

Como ShellExecute determina se deve iniciar uma nova instância

Quando procura ShellExecute através do registo, procura a subchave
shell\open
. Se a chave
shell\open\ddeexec
estiver definida, um intercâmbio dinâmico de dados (DDE) mensagens com a aplicação especificada IExplore e o tópico WWW_OpenURL é difundida para todas as janelas de nível superior no ambiente de trabalho. A primeira aplicação para responder a esta mensagem é a aplicação vai para o URL pedido. Se nenhuma aplicação responder a esta mensagem DDE, ShellExecute utiliza as informações contidas na subchave
shell\open\command
para iniciar a aplicação. Em seguida, re-broadcasts a mensagem DDE para ir para o URL pedido.

Referências

Para mais informações sobre como predefinição Web browsers, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
153774  (http://support.microsoft.com/kb/153774/ ) Internet Explorer não configurado como browser predefinido
Os produtos de outros fabricantes explicado neste artigo são fabricados por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, expressa ou implícita, sobre o desempenho ou fiabilidade destes 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 128-Bit Edition
  • 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )