Executar uma aplicação externa
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
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:
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
Curtidas 0
Respostas
Vagner Almeida
17/01/2014
Ninguém?!!
:|
:|
GOSTEI 0