janela de execução

16/02/2006

Boa tarde,


Pesquisando aqui no fórum encontrei algumas informações sobre como utilizar o create process e estou utilizando a sintaxe abaixo:

procedure TFrm_GeraRelatorioWeb.Processa;
var
StartupInfo: TStartupInfo;
ProcessInformation: TProcessInformation;
rc : Boolean;
v_texto: string;
SI: TStartupInfo;
begin

si.wShowWindow := SW_HIDE;

if FileExists(v_executa_arquivo) then
begin
v_texto:=v_executa_arquivo;

FillChar(StartupInfo, SizeOf(StartupInfo), #0);

with StartupInfo do
cb := SizeOf(StartupInfo);

rc := CreateProcess(NIL, PChar(v_texto), NIL, NIL, FALSE,
NORMAL_PRIORITY_CLASS, NIL, NIL, StartupInfo, ProcessInformation);

// NORMAL_PRIORITY_CLASS, NIL, NIL, SI, ProcessInformation);

if rc then
WaitForSingleObject(ProcessInformation.hProcess,INFINITE);

end;
end;

v_executa_arquivo - é uma variável que contém a localização do arquivo .bat a ser executado.

Se utilizar SI no lugar do StartupInfo a execução parece que foi feita mas não acontece nada. Retirando o SI e utilizando o StartupInfo a execução ocorre normalmente mas o conteúdo do arquivo .bat aparece na tela sobrepondo a tela que chamou a execução do mesmo.
Há alguma outra forma de deixar a janela de execução em hidden sem utilizar o SI?

Obrigado

Airton


Airoosp