Como utilizar ShellExecute para iniciar associada de ficheiro (16 bits)

Traduções de Artigos Traduções de Artigos
Artigo: 147807 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Pode utilizar a função ShellExecute() da API do Windows para iniciar a aplicação associada com uma extensão de determinado documento sem saber o nome da aplicação associada. Por exemplo, pode iniciar o programa Paintbrush, passando o nome do ficheiro ARCADE.bmp para a função ShellExecute().

Mais Informação

A função ShellExecute abre ou imprime o ficheiro especificado. Segue-se a declaração a utilizar quando chamar esta função do Visual Basic:
   Declare Function ShellExecute Lib "SHELL" (ByVal hwnd%, ByVal lpszOp$, _
   ByVal lpszFile$, ByVal lpszParams$, ByVal lpszDir$, ByVal _
   fsShowCmd%) As Integer
				

A tabela seguinte fornece descrições para cada parâmetro:
Parameter   Description
--------------------------------------------------------------------------
hwnd%       Identifies the parent window. This window receives any message
            boxes an application produces (for example, for error
            reporting).

lpszOp$     Points to a null-terminated string specifying the operation to
            perform. This string can be "open" or "print." If this
            parameter is NULL, "open" is the default value.

lpszFile$   Points to a null-terminated string specifying the file to open.
lpszParams$ Points to a null-terminated string specifying parameters passed
            to the application when the lpszFile parameter specifies an
            executable file. If lpszFile points to a string specifying a
            document file, this parameter is NULL.

lpszDir$    Points to a null-terminated string specifying the default
            directory.

fsShowCmd%  Specifies whether the application window is to be shown when
            the application is opened. This parameter can be one of the
            values described in the API ShowWindow().
				

Exemplo passo a passo

O exemplo seguinte demonstra como iniciar uma aplicação ou carregar um documento na respectiva aplicação associada. A função ShellExecute() da API do Windows é diferente da função do Visual Basic Shell() em que pode transferir a função ShellExecute() o nome de um documento e irá iniciar a aplicação associada e, em seguida, passar o nome de ficheiro para a aplicação. No seguinte exemplo de código, o carácter de sublinhado "_" indica uma continuação de uma linha de código e tem de ser removido para o Visual Basic 3.0:
  1. Inicie um novo projecto no Visual Basic. É criado o Form1 por predefinição.
  2. Adicione o seguinte código à secção declarações gerais do Form1: (Nota: remover a palavra-chave "PRIVATE" ao utilizar o Visual Basic 3.0)
          Option Explicit
    
          Const SW_SHOWNORMAL = 1
    
          Private Declare Function ShellExecute Lib "shell.dll" (ByVal hwnd%, _
          ByVal lpszOp$, ByVal lpszFile$, ByVal spszParams$, ByVal _
          lpszDir$, ByVal fsShowCmd%) As Integer
    
          Private Declare Function GetDesktopWindow Lib "USER" () As Integer
    
          Function StartDoc(DocName As String) As Integer
             Dim Scr_hDC As Integer
             Scr_hDC = GetDesktopWindow()
             StartDoc = ShellExecute(Scr_hDC, "Open", DocName, "", "C:\", _
             SW_SHOWNORMAL)
          End Function
    
          Sub Form_Click()
             Dim r As Integer
             r = StartDoc("C:\WINDOWS\ARCADE.BMP")
          End Sub
    						

Informações gerais sobre o processo

Se a função tiver êxito, o valor devolvido é o identificador de instância da aplicação que foi executada. Se tiver ocorrido um erro, o valor de retorno é menor ou igual a 32.

O ficheiro especificado pelo parâmetro lpszFile $ pode ser um ficheiro de documento ou um ficheiro executável. Se for um ficheiro de documento, esta função abre ou imprime-dependendo do valor do parâmetro lpszOp $. Se for um ficheiro executável, esta função possa abrir apenas e o parâmetro de $ lpszOp tem de especificar "Abrir".

Referências


"Reference do programador, volume 2: funções" do Microsoft Windows Software Development Kit (SDK), páginas 901-904.

Tópico de ShellExecute do ficheiro de ajuda do Windows 3.1 SDK.

Propriedades

Artigo: 147807 - Última revisão: 2 de fevereiro de 2014 - Revisão: 1.2
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 3.0 Professional Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhowto KB147807 KbMtpt
Traduçã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: 147807

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com