Executar comando DOS e aguardar finalização
01/09/2004
0
Estou utilizando o CreateProcess para chamar o pkunzip (DOS) Segue abaixo o código que estou utilizando
var
vOpProc: TStartupInfo;
vProc: TProcessInformation;
vOpProc.dwFlags:=STARTF_USESHOWWINDOW;
vOpProc.wShowWindow:=SW_HIDE;
if CreateProcess(nil, PChar(´pkunzip ´+vPath+´ -s[envio]´), nil,nil, False,
0, nil, PChar(ExtractFilePath(Application.ExeName)), vOpProc, vProc) then
begin
WaitForSingleObject(vProc.hProcess, INFINITE);
CloseHandle(vProc.hProcess);
CloseHandle(vProc.hThread);
end
else
raise Exception.Create(´Não foi possível descompactar os arquivos´);
Quando utilizo vOpProc.wShowWindow diferente de SW_HIDE o usuário fecha a janela e a execução volta para o sistema em Delphi. Só que com o SW_HIDE a janela não é vista e o usuário não pode fecha-la, então o programa entra em loop constante.
Como resolver este problema?
Agradeço pela força,
Braytiner
var
vOpProc: TStartupInfo;
vProc: TProcessInformation;
vOpProc.dwFlags:=STARTF_USESHOWWINDOW;
vOpProc.wShowWindow:=SW_HIDE;
if CreateProcess(nil, PChar(´pkunzip ´+vPath+´ -s[envio]´), nil,nil, False,
0, nil, PChar(ExtractFilePath(Application.ExeName)), vOpProc, vProc) then
begin
WaitForSingleObject(vProc.hProcess, INFINITE);
CloseHandle(vProc.hProcess);
CloseHandle(vProc.hThread);
end
else
raise Exception.Create(´Não foi possível descompactar os arquivos´);
Quando utilizo vOpProc.wShowWindow diferente de SW_HIDE o usuário fecha a janela e a execução volta para o sistema em Delphi. Só que com o SW_HIDE a janela não é vista e o usuário não pode fecha-la, então o programa entra em loop constante.
Como resolver este problema?
Agradeço pela força,
Braytiner
Braytiner Heggendorn
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)