Pergunta

Eu consegui definir o compilador para executar outro programa quando o projeto é criado/correu com a seguinte diretiva no projeto de opções:

call program.exe param1 param2

O problema é que o compilador executa "program.exe" e espera encerrar e, em SEGUIDA, o projeto executável é executado.

O que eu pergunto:Como configurar o compilador para executar os dois arquivos executáveis em paralelo, sem esperar por PostBuild evento para terminar?

Obrigado antecipadamente

Foi útil?

Solução

Eu não tenho nenhuma idéia de como o IDE gere aguardar o término dos processos iniciados por "iniciar", mas chamar "CreateProcess" na sua forma mais simples em seu próprio programa starter parece servir.

Compilação de hts.como;

program starter;

{$APPTYPE CONSOLE}

uses
  sysutils, windows;

var
  i: Integer;
  CmdLine: string;
  StartInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
begin
  try
    if ParamCount > 0 then begin
      CmdLine := '';
      for i := 1 to ParamCount do
        CmdLine := CmdLine + ParamStr(i) + ' ';
      ZeroMemory(@StartInfo, SizeOf(StartInfo));
      StartInfo.cb := SizeOf(StartInfo);
      ZeroMemory(@ProcInfo, SizeOf(ProcInfo));
      if not CreateProcess(nil, PChar(CmdLine), nil, nil, False,
                      NORMAL_PRIORITY_CLASS, nil, nil, StartInfo, ProcInfo) then
        raise Exception.Create(Format('Failed to run: %s'#13#10'Error: %s'#13#10,
                            [CmdLine, SysErrorMessage(GetLastError)]));
    end;
  except
    on E:Exception do begin
      Writeln(E.ClassName + ', ' +  E.Message);
      Writeln('... [Enter] to dismiss ...');
      Readln(Input);
    end;
  end;
end.

e, em seguida, no PostBuild colocar:

"X:\...\starter.exe" "X:\...\program.exe" param1 param2

Outras dicas

Em vez de chamar program.exe, uso de início program.exe

Criar um arquivo bat.Colocar alguns comandos com início, como Alan sugeriu:

start program.exe param1 param2
start program.exe param1 param2
start program.exe param1 param2 
start program.exe param1 param2

Em seguida, chamar este arquivo bat.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top