GARANTIR DESCONTO

Fórum Executar uma aplicação externa #467237

17/01/2014

0

Olá Pessoal!

Estou precisando de um Método para executar programas/aplicativos externos e esperar o encerramento para prosseguir com o aplicativo atual.

Estava utilizando a função
ExecAndWait
e funciona muito bem. Mas tenho um programa que ele não está executando.

Testei com o ShellExecute e funcionou, mas tem o problema de após executar o programa ele continua a executar os códigos seguintes, ou seja, ele não esperar o encerramento para prosseguir com o aplicativo atual.

Agradeço desde já qualquer ajuda.

Segue abaixo o código do ExecAndWait:

function ExecAndWait(const FileName, Params: string; const WindowState: Word): boolean;
var SUInfo: TStartupInfo;
    ProcInfo: TProcessInformation;
    CmdLine: string;
begin
 { Coloca o nome do arquivo entre aspas. Isto é necessário devido aos espaços contidos em nomes longos }
 CmdLine := '"' + Filename + '"' + '"' + Params + '"';
 FillChar(SUInfo, SizeOf(SUInfo), #0);

 with SUInfo do
 begin
    cb := SizeOf(SUInfo);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := WindowState;
 end;

 Result := CreateProcess(nil, PChar(CmdLine), nil, nil, false,
           CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
           nil, SUInfo, ProcInfo);

  { Aguarda até ser finalizado }

 if Result then
 begin
    WaitForSingleObject(ProcInfo.hProcess, INFINITE);
    { Libera os Handles }
    CloseHandle(ProcInfo.hProcess);
    CloseHandle(ProcInfo.hThread);
 end;
end;
Vagner Almeida

Vagner Almeida

Responder

Posts

21/01/2014

Vagner Almeida

Ninguém?!!

:|
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar