quarta-feira, 11 de novembro de 2009

WinExec, ShellExecute ou Create Process

Pessoal segue nova função referente ao problema relacionado com o WinExec no Delphi 2010.
Para maiores esclarecimentos, após a função, segue um link para a materia que fala sobre o assunto.

function TFrmSIS_Menu.AbreModulo(Caminho: String): boolean;
var SUInfo: TStartupInfo;
ProcInfo: TProcessInformation;
begin
FillChar(SUInfo, SizeOf(SUInfo), #0);
SUInfo.cb := SizeOf(SUInfo);
SUInfo.dwFlags := STARTF_USESHOWWINDOW;
SUInfo.wShowWindow := SW_NORMAL;
Result := CreateProcess(nil,
PChar(Caminho),
nil,
nil,
false,
CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS,
nil,
nil,
SUInfo,
ProcInfo);

if (Result) then
begin
//a linha abaixo faz com que a aplicação congele enquanto não finalizar o programa chamado...
//WaitForSingleObject(ProcInfo.hProcess, INFINITE);

CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
end;
end;

http://www.marcosdellantonio.net/2006/11/28/delphi-winexec-shellexecute-ou-createprocess/

Nenhum comentário:

Postar um comentário