Wie führe ich parallel ein Programm zum Nachbauer -Event aus?
-
23-09-2019 - |
Frage
Ich habe es geschafft, den Compiler für ein weiteres Programm auszuführen, wenn das Projekt mit der folgenden Richtlinie in Projektoptionen erstellt/ausgeführt wird:
call program.exe param1 param2
Das Problem ist, dass der Compiler "Programm.exe" ausführt und darauf wartet, dass er beendet wird, und dann wird das ausführbare Projekt ausgeführt.
Was ich frage: Wie setze der Compiler so ein, dass beide ausführbaren Ausführungsfähigkeiten parallel ausgeführt werden, ohne auf die Beendigung des Ereignisses nach dem Bauen zu warten?
Danke im Voraus
Lösung
Ich hätte keine Ahnung, wie es der IDE schafft, auf die Beendigung der durch "Start" initiierten Prozesse zu warten, aber "Createprocess" in Ihrem eigenen Programmstarter zu dienen, scheint zu dienen.
Kompilieren sth. wie;
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.
Und dann auf Postbuild:
"X:\...\starter.exe" "X:\...\program.exe" param1 param2
Andere Tipps
Verwenden Sie anstelle von Call Program.exe start programm.exe
Erstellen Sie eine Fledermausdatei. Setzen Sie dort nur wenige Befehle mit Start ein, wie Alan vorschlug:
start program.exe param1 param2
start program.exe param1 param2
start program.exe param1 param2
start program.exe param1 param2
Rufen Sie dann diese Fledermausdatei an.