2

プロジェクトオプションで次のディレクティブを使用してプロジェクトをビルド/実行するときに、別のプログラムを実行するようにコンパイラを設定することができました。

call program.exe param1 param2

問題は、コンパイラが「program.exe」を実行し、それが終了するのを待ってから、プロジェクトの実行可能ファイルが実行されることです。

私が尋ねること: PostBuild イベントの実行可能ファイルが終了するのを待たずに、両方の実行可能ファイルを並行して実行するようにコンパイラを設定するにはどうすればよいですか?

前もって感謝します

4

3 に答える 3

2

「開始」によって開始されたプロセスの終了を IDE がどのように待機するのかはわかりませんが、独自のプログラム スターターで最も単純な方法で「CreateProcess」を呼び出すと役立つようです。

sth をコンパイルします。お気に入り;

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.

そして、PostBuild に次のように置きます。

"X:\...\starter.exe" "X:\...\program.exe" param1 param2
于 2010-04-05T00:54:02.620 に答える
0

program.exeを呼び出す代わりに、startprogram.exeを使用します

于 2010-04-01T07:20:08.380 に答える
0

バットファイルを作成します。Alan が提案したように、いくつかのコマンドを start に入れます。

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

次に、このバット ファイルを呼び出します。

于 2010-04-01T07:33:53.753 に答える