segunda-feira, 23 de março de 2009

Conhece o ShellExecute ?


Não é muito comum no desenvolvimento de sistemas, mas você pode vir a precisar executar um outro programa ou arquivo durante a execução do seu sistema, ao se deparar com essa necessidade você pode até vir a pensar que isso seja impossível ou no mínimo complicado, mas não é.

Através do comando ShellExecute, podemos abrir arquivos existente na máquina, como documentos, executáveis e coisas do gênero.

Primeiramente, você deve adicionar na cláusula "uses" uma chamada a unit Shellapi, que permitirá usar o comando ShellExecute, após isso você pode experimentar o comando que possui uma sintaxe simples. Abaixo, alguns exemplos e um link para download do exemplo com fontes.

Exemplo 1 - Executar um programa, no caso o Notepad.exe

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL) ;
end;


Exemplo 2 - Abrir um determinado arquivo num programa específico

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ShellExecute(Handle,'open', 'c:\windows\notepad.exe','c:\windows\WindowsUpdate.log', nil, SW_SHOWNORMAL) ;
end;


Exemplo 3 - Abrir uma determinada pasta através do Windows Explorer

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
ShellExecute(Handle,'open', 'c:\Windows', nil, nil, SW_SHOWNORMAL) ;
end;

Link para o fonte dos exemplos: ShellExecute


Atualizado:
Depois do comentário, nada mais justo que corrigir o post, mil desculpas.

1 deram a sua opnião e vc ?:

Nonato Segundo disse...

Pow cara... assim não da... você falou de winexec pra ca, winexec pra la... mais na hora de implementar você usou o shell API... vendo assim os dois podem fazer a mesma coisa... mais você nao falou do winexec.

hehe valeu.