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


Braytiner Heggendorn

Braytiner Heggendorn

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar