Executando aplicativo externo no Delphi

Veja nesta dica de Erick Sasse, como criar uma função que execute um aplicativo externo e aguarde o seu término no Delphi.

ExecuteAndWait

Hoje precisei de uma função que executasse um aplicativo externo e aguardasse sua execução antes de continuar. Testei várias funções que encontrei, mas a única que funcionou foi essa, que aparentemente é de autoria de Marc Hoffman, e que depois de pequenos ajustes meus ficou assim:

Listagem 1. Função ExecuteAndWait no Delphi

function ExecuteAndWait(App, Params: string): Cardinal; var StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; s: array[0..MAX_PATH] of char; begin GetStartupInfo(Startupinfo); ExpandEnvironmentStrings(pChar(App), @s, MAX_PATH); App := string(pChar(@s)); if CreateProcess(pChar(App), pChar(App + ' ' + Params), nil, nil, false, 0, nil, pChar(GetCurrentDir), StartupInfo, ProcessInfo) then begin CloseHandle(ProcessInfo.hThread); WaitForSingleObject(ProcessInfo.hProcess, INFINITE); GetExitCodeProcess(ProcessInfo.hProcess, result); CloseHandle(ProcessInfo.hProcess); end else raise Exception.CreateFmt('Não foi possível criar o processo %s %s: %d', [App, Params, GetLastError]); end;
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados