Un lugar de encuentro para los programadores de habla hispana

Un lugar de encuentro para los programadores de habla hispana

Buscar

Entrar

Puedes acceder utilizando tu cuenta de usuario del foro.

Si no dispone de cuenta, puede crear una accediendo al formulario de registro del foro.



Ejecutar un programa y esperar a que termine Imprimir
Ideas - Delphi

El código siguiente es una función que permite ejecutar un programa y esperar a que termine, obteniendo el código de retorno.

 
function WinExecAndWait32(FileName:String; Visibility : integer): integer;
var
  zAppName:array[0..512] of char;
  zCurDir:array[0..255] of char;
  WorkDir:String;
  StartupInfo:TStartupInfo;
  ProcessInfo:TProcessInformation;
begin
  StrPCopy(zAppName,FileName);
  GetDir(0,WorkDir);
  StrPCopy(zCurDir,WorkDir);
  FillChar(StartupInfo,Sizeof(StartupInfo),#0);
 
  StartupInfo.cb := Sizeof(StartupInfo);
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
  StartupInfo.wShowWindow := Visibility;
 
  if not CreateProcess(nil, zAppName, { pointer to command line string }
                       nil, { pointer to process security attributes }
                       nil, { pointer to thread security attributes }
                       false, { handle inheritance flag }
                       CREATE_NEW_CONSOLE or { creation flags }
                       NORMAL_PRIORITY_CLASS,
                       nil, { pointer to new environment block }
                       nil, { pointer to current directory name }
                       StartupInfo, { pointer to STARTUPINFO }
                       ProcessInfo) then
    Result := -1 { pointer to PROCESS_INF }
  else begin
    WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
    GetExitCodeProcess(ProcessInfo.hProcess,Result);
  end;
end;
 
 

Este código es el resultado de unas consultas y contestaciones por parte de y es, que amablemente me hicieron llegar el código definitivo.

Comentarios (0)
Para escribir un comentario debes estar registrado