ポストビルドイベントでプログラムを並行して実行する方法は?
-
23-09-2019 - |
質問
プロジェクトが構築/実行されたときに、プロジェクトオプションで次の指令を使用して別のプログラムを実行するようにコンパイラを設定することができました。
call program.exe param1 param2
問題は、コンパイラが「プログラム」を実行し、終了するのを待ってからプロジェクト実行可能ファイルが実行されることです。
私が尋ねること:ポストビルドイベントのイベントが終了するのを待つことなく、両方の実行可能ファイルを並行して実行するようにコンパイラを設定するにはどうすればよいですか?
前もって感謝します
解決
IDEが「Start」によって開始されたプロセスの終了をどのように待つことができたかはわかりませんが、あなた自身のプログラムスターターで最も単純な「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 Putで:
"X:\...\starter.exe" "X:\...\program.exe" param1 param2
他のヒント
call.exeの代わりに、Start Program.exeを使用します
バットファイルを作成します。アランが示唆したように、スタートでコマンドをほとんど入れてください。
start program.exe param1 param2
start program.exe param1 param2
start program.exe param1 param2
start program.exe param1 param2
次に、このバットファイルを呼び出します。
所属していません StackOverflow