Selecao DevMedia QUERO SER PRIME

Fórum Winexec ou Shellexecute #372703

23/07/2009

0

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

Responder

Posts

24/07/2009

Guinther

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;


Responder

Gostei + 0

27/07/2009

Vispo

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


Responder

Gostei + 0

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

Aceitar