Esse artigo faz parte da revista Clube Delphi edição 19. Clique aqui para ler todos os artigos desta edição

 

Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 

 

Trabalhando com a shell do Windows

 

Quando se fala em interação com o sistema operacional, muitos programadores ignoram ou tentam outros meios para evitar as inúmeras variáveis, comandos e funções de nome estranho da API. Não se pode dizer que trabalhar com a Shell é um processo fácil, visto que até para encontrar material relacionado já é meio complicado.

         Diante de sua inegável complexidade, citaremos alguns exemplos "úteis" da utilização deste recurso, que pode muitas vezes poupar tempo e/ou trabalho tentando-se outros caminhos; para a utilização das funções a seguir você precisa declarar na cláusula uses a unit ShellApi. Vamos aos exemplos:

 

Executando um programa

 

         É habitual a utilização da função WinExec para executar determinados programas. Porém, este é um costume desaconselhável, já que, segundo comentários, a Microsoft pretende descontinuar esta API nas versões futuras do Windows. Utilizar a Chamada ShellExecute da API é mais recomendado, por ser mais fácil de usar e permitir a execução de aplicações registradas chamando apenas o documento. Por exemplo: se você chamar um arquivo do formato ".html" seu browser será acionado, se um arquivo do tipo ".doc", o Word será executado etc.. Veja um exemplo:

 

ShellExecute(0,nil,'NOTEPAD.EXE','',nil,sw_shownormal);

 

         Você pode fazer a mesma chamada de forma que possa ter um controle maior sobre a aplicação e seus threads, porém com um pouco mais de complexidade:

 

var pi: TProcessInformation;

si: TStartupInfo;

begin

    FillMemory( @si, sizeof( si ), 0 );

...

Quer ler esse conteúdo completo? Tenha acesso completo