Fórum Aguardando execução #333259
17/11/2006
0
Preciso que minha apliacação aguarde um winexec
Tenho Esta função de aguardar:
function flExecAndWait(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,
PChar(ExtractFilePath(Filename)), SUInfo, ProcInfo);
{ Aguarda até ser finalizado }
// if Result then begin
// WaitForSingleObject(ProcInfo.hProcess, 5000);
{ Libera os Handles }
CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
// end;
end;
e mais essa de executar ( descompactar um arquivo );
Winexec(PChar(´\\meuservidor\C\Descompact\Winrar.exe e ´ + ArqRar + ´ ´ + ´C:\´) , SW_HIDE);
Como faço para o sistema aguardar o término deste processo.
Abraço a todos
Tremonti
Curtir tópico
+ 0Posts
17/11/2006
Tremonti
Gostei + 0
17/11/2006
Paullsoftware
function ExecExterno(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,
PChar(ExtractFilePath(Filename)), 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;Gostei + 0
07/08/2007
Acacio
pensando e quando eu fecho o Delphi ai ele entra no programa de instalação.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)