Deprecated: Function get_magic_quotes_gpc() is deprecated in /home2/tonyso97/public_html/libraries/f0f/input/input.php on line 102

Deprecated: Function get_magic_quotes_gpc() is deprecated in /home2/tonyso97/public_html/libraries/f0f/input/input.php on line 102

Deprecated: Function get_magic_quotes_gpc() is deprecated in /home2/tonyso97/public_html/libraries/f0f/input/input.php on line 102
Usando ShellExecute para executar aplicativos externos

Usando ShellExecute para executar aplicativos externos, neste artigo de Daniel Wildt. Acesso exclusivo para Assinantes.

 10 
 
 
 
 
 

 

 

Introdução

Nas nossas aplicações comerciais muitas vezes precisamos interagir com ferramentas externas, o que nos leva a buscar funções do Delphi como WinExec, a mais conhecida, mas que também só é utilizada por compatibilidade.

Iremos verificar nesta dica como utilizar o ShellExecute, funcionalidade da API do Windows, para executar aplicativos externos. Também iremos verificar que podemos enviar arquivos diretamente para a impressora e abrir pastas do WindowsExplorer com este comando.

A função ShellExecute funciona como o menu Executar do Windows, e este é o seu melhor benefício de uso. Se colocamos ali um path de internet, como http://www.clubedelphi.net, o sistema abre o Navegador padrão, se colocamos um caminho de um arquivo .doc, o sistema vai abrir o WordPad ou outro software associado para abrir documentos MS-Word. Se colocamos um caminho, o sistema abre uma janela do explorer posicionado no caminho requisitado.

A estrutura do Comando

O comando ShellExecute tem a seguinte assinatura:

function ShellExecute(hWnd: HWND; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer): HINST;

 

Onde:

hWnd: Handle da Janela que está executando o Comando.

Operation: Tipo de operação que se quer executar. Pode ser 'open', 'print' ou 'explorer'

FileName: O arquivo que se quer abrir.

Parameters: Parâmetros a serem passados para o FileName que vai ser aberto. Este parâmetro é útil no caso de se passar no FileName o caminho de um executável.

Directory: O diretório onde a aplicação deve executar.

ShowCmd: indica o tipo de janela que deve ser aberta. Podemos utilizar por exemplo SW_HIDE (deixa a janela invisível), SW_MAXIMIZE (janela maximizada), SW_MINIMIZE (janela minimizada), SW_SHOWNORMAL (abre a janela restaurada e ativa).

Retorno: A função possui erro quando o retorno é menor ou igual a 32. Exemplos de erros que podem ser testados são ERROR_FILE_NOT_FOUND (arquivo não encontrado), ERROR_PATH_NOT_FOUND (caminho não encontrado), SE_ERR_ACCESSDENIED (o programa não tem direito para acessar o arquivo/programa requisitado), SE_ERR_ASSOCINCOMPLETE (arquivo requisitado não possui associação definida), SE_ERR_SHARE (Violação de Compartilhamento), entre outros erros que podem ser mapeados.

Exemplos com ShellExecute

Vamos verificar alguns exemplos de comandos que podem ser executados com o ShellExecute. Vamos utilizar o arquivo "c:\clubedelphi\teste.doc" como exemplo para os nossos estudos. Você consegue simular a ação de open e explorer acessando o menu "Run" ou "Executar" do Windows.

 

Abrir o arquivo com o programa associado:

edArquivo.Text := 'c:\clubedelphi\teste.doc';

ShellExecute(handle,'open',PChar(edArquivo.Text), '','',SW_SHOWNORMAL);

 

Imprimindo o arquivo:

edArquivo.Text := 'c:\clubedelphi\teste.doc';

ShellExecute(handle,'print',PChar(edArquivo.Text), '','',SW_SHOWNORMAL);

 

Abrindo a pasta 'c:\clubedelphi' e colocando a janela em modo Maximizada:

edArquivo.Text := 'c:\clubedelphi\';

ShellExecute(handle,'explore',PChar(edArquivo.Text), '','',SW_SHOWMAXIMIZED);

 

Criando uma nova mensagem com o cliente de email padrão definindo para quem vai a mensagem (Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.), definido cópia (Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.), assunto (Assunto do email) e corpo da mensagem (Texto da Mensagem):

edArquivo.Text := 'mailto:Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.?cc=Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.&subject=Assunto do email&body=Texto da Mensagem';

ShellExecute(handle,'open',PChar(edArquivo.Text), '','',SW_SHOWNORMAL);

 

Abrindo um web site com o navegador padrão:

edArquivo.Text := 'http://www.clubedelphi.net';

ShellExecute(handle,'open',PChar(edArquivo.Text), '','',SW_SHOWNORMAL)

Conclusões

Com esta dica verificam



Leia mais em: Usando ShellExecute para executar aplicativos externos http://www.devmedia.com.br/usando-shellexecute-para-executar-aplicativos-externos/613#ixzz3Qmu8sVGr