Winexec ou Shellexecute

Delphi

23/07/2009

Colegas;
Existe uma maneira de executar um comando Winexec ou Shellexecute de forma modal? Ou seja, só quero continuar o processamento do meu programa depois que a execução do Winexec (ou Shellexecute) acabe.

Abraço!


Vispo

Vispo

Curtidas 0

Respostas

Guinther

Guinther

23/07/2009

Use CreateProcess

function CreateProcessAndWait(const AppPath, AppParams: String; Visibility:
word): DWord;
var
SI: TStartupInfo;
PI: TProcessInformation;
Proc: THandle;
begin
FillChar(SI, SizeOf(SI), 0);
SI.cb := SizeOf(SI);
SI.wShowWindow := Visibility;
if not CreateProcess(PChar(AppPath), PChar(AppParams), Nil, Nil, False,
Normal_Priority_Class, Nil, Nil, SI, PI) then
raise EExecuteError.CreateFmt(´Failed to execute program. Error Code
¬d´, [GetLastError]);
Proc := PI.hProcess;
CloseHandle(PI.hThread);
if WaitForSingleObject(Proc, Infinite) <> Wait_Failed then
GetExitCodeProcess(Proc, Result);
CloseHandle(Proc);
end;


GOSTEI 0
Vispo

Vispo

23/07/2009

Obrigado [b:a619163d50]Guinther[/b:a619163d50], era o que eu precisava! :)


GOSTEI 0
POSTAR