Ver Mensaje Individual
  #4  
Antiguo 14-12-2011
jxsoftware jxsoftware is offline
Miembro
 
Registrado: may 2010
Ubicación: Perú
Posts: 16
Reputación: 0
jxsoftware Va por buen camino
Otra forma

Código Delphi [-]
procedure Ejecutar(sApp: String; Esperar: Cardinal; Visible: Boolean);
var
  StarInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
begin
  FillChar(StarInfo, SizeOf(TStartupInfo), 0);
  StarInfo.cb := SizeOf(TStartupInfo);
  if not Visible then
  begin
    StarInfo.dwFlags := STARTF_USESHOWWINDOW;
    StarInfo.wShowWindow := SW_HIDE;
  end;
  if CreateProcess(nil, PChar(sApp), nil, nil, False, NORMAL_PRIORITY_CLASS,
    nil, PChar(ExtractFilePath(sApp)), StarInfo, ProcInfo) then
  begin
    WaitForSingleObject(ProcInfo.hProcess, Esperar);
    CloseHandle(ProcInfo.hProcess);
    CloseHandle(ProcInfo.hThread);
  end
  else
    if CreateProcess(nil, PChar(sApp), nil, nil, False, NORMAL_PRIORITY_CLASS,
      nil, nil, StarInfo, ProcInfo) then
    begin
      WaitForSingleObject(ProcInfo.hProcess, Esperar);
      CloseHandle(ProcInfo.hProcess);
      CloseHandle(ProcInfo.hThread);
    end
    else
      ShowMessage(SysErrorMessage(GetLastError));
end;
 
//Espera hasta que termine de ejecutarse archivo.bat antes de pasar a la siguiente instrucción.
Ejecutar('C:\archivo.bat parametros', Infinite, True); 
 
//Ejecuta archivo.bat y pasa inmediatamente a la siguiente instrucción.
Ejecutar('C:\archivo.bat parametros', 0, True);
Responder Con Cita