como esperar a execucao e finalização do winzip
pessoal, gostaria de saber qual o esquema para que, depois de executado, esperar a finalização do winzip (termino da compactação), para depois continuar a executar outras instrucoes do programa
valeu t+
Julio Cezar
valeu t+
Julio Cezar
Anonymous
Curtidas 0
Respostas
Carnette
13/02/2003
Para executar um programa e esperar até esse programa finalizar, use a rotina abaixo:
function Executa (Arquivo : String; Estado : Integer) : Integer;
var
Programa : array [0..512] of char;
CurDir : array [0..255] of char;
WorkDir : String;
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
begin
StrPCopy (Programa, Arquivo);
GetDir (0, WorkDir);
StrPCopy (CurDir, WorkDir);
FillChar (StartupInfo, Sizeof (StartupInfo), #0);
StartupInfo.cb := sizeof (StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Estado;
if not CreateProcess (nil, Programa, nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
Result := -1
else
begin
WaitForSingleObject (ProcessInfo.hProcess, Infinite);
GetExitCodeProcess (ProcessInfo.hProcess, Result);
end;
end;
Estado é o tipo de janela que aparecerá, que pode ser:
SW_SHOWNORMAL
Janela em modo normal
SW_MAXIMIZE
Janela maximizada
SW_MINIMIZE
Janela minimizada
SW_HIDE
Janela Escondida
function Executa (Arquivo : String; Estado : Integer) : Integer;
var
Programa : array [0..512] of char;
CurDir : array [0..255] of char;
WorkDir : String;
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
begin
StrPCopy (Programa, Arquivo);
GetDir (0, WorkDir);
StrPCopy (CurDir, WorkDir);
FillChar (StartupInfo, Sizeof (StartupInfo), #0);
StartupInfo.cb := sizeof (StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Estado;
if not CreateProcess (nil, Programa, nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
Result := -1
else
begin
WaitForSingleObject (ProcessInfo.hProcess, Infinite);
GetExitCodeProcess (ProcessInfo.hProcess, Result);
end;
end;
Estado é o tipo de janela que aparecerá, que pode ser:
SW_SHOWNORMAL
Janela em modo normal
SW_MAXIMIZE
Janela maximizada
SW_MINIMIZE
Janela minimizada
SW_HIDE
Janela Escondida
GOSTEI 0