Sobre se uma execução dentro da procedure terminou.
Olá, eu queria saber se tem como saber se uma linha da procedure como ´WincExec(...)´ terminou de executar, por exemplo, se enquanto a execução do programa dentro do WinExec estiver sendo executada, dá uma mensagem num Label que o programa está sendo executado, qdo. terminar a execução aí dá uma outra mensagem no Label que terminou a execução do programa.
Espero retorno!
Obrigado!
Espero retorno!
Obrigado!
Anonymous
Curtidas 0
Respostas
Navoid
22/02/2003
olha a única maneira de fazer isso é usando a função abaixo, só que o seu programa irá ficar parado esperando o programa encerrar, vc num vai mais ter controle sobre ele até que o programa executado seja terminado.
****
procedure ExecutaAplicativoEsperando(LinhaComando: string);
var StartupInfo: TStartupInfo;
ProcessInformation: TProcessInformation;
rc: Boolean;
begin
FillChar(StartupInfo, SizeOf(StartupInfo), #0);
with StartupInfo do
cb := SizeOf(StartupInfo);
rc := CreateProcess(nil, PChar(LinhaComando), nil, nil, false,
NORMAL_PRIORITY_CLASS, nil,
nil, StartupInfo, ProcessInformation);
if rc then
WaitForSingleObject(ProcessInformation.hProcess, INFINITE)
else
raise Exception.Create(LinhaComando+13+´ não encontrado neste computador´);
end;
****
até
****
procedure ExecutaAplicativoEsperando(LinhaComando: string);
var StartupInfo: TStartupInfo;
ProcessInformation: TProcessInformation;
rc: Boolean;
begin
FillChar(StartupInfo, SizeOf(StartupInfo), #0);
with StartupInfo do
cb := SizeOf(StartupInfo);
rc := CreateProcess(nil, PChar(LinhaComando), nil, nil, false,
NORMAL_PRIORITY_CLASS, nil,
nil, StartupInfo, ProcessInformation);
if rc then
WaitForSingleObject(ProcessInformation.hProcess, INFINITE)
else
raise Exception.Create(LinhaComando+13+´ não encontrado neste computador´);
end;
****
até
GOSTEI 0