ich suche nun schon eine Weile, konnte aber nicht die Antworten auf meine Fragen finden.
Ich nutze/nutzte zum mitloggen meiner Programme eine selbst geschriebene Status-Form. Das ganze habe ich nun geändert und aus der Form ist ein eigenständiges Programm geworden, was mittels TSimpleIPC kommuniziert. Bringt für mich verschmerzbare Performanceeinbußen mit sich, hat aber den Riesenvorteil, daß die Information, wo ein Fehler auftaucht für mich nachvollziehbarer ist, da das Mitschnittprogramm noch aktiv ist (eine Division durch null führt zum Absturz des Hauptprogramms, nicht des Mitschnittprogramms, Historie ist dadurch sehr leicht nachvollziehbar).
Also ich starte mit
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
AProcess:=TProcess.Create(nil);
try
AProcess.CommandLine:='Statusneu.exe';
AProcess.Execute;
finally
end;
// ShellExecute(Form1.Handle,'open',pchar('Statusneu.exe'),nil,nil, SW_SHOWNORMAL);
end;
Frage1: Wie kann ich den Focus, der dadurch auf das Mitschnittprogramm gesetzt wird wieder zurückholen und auf das Hauptprogramm setzen?
Frage2: Beim normalen Beenden des Hauptprogramms will ich, dass das Mitschnittprogramm ebenfalls normal beendet wird. Ich kann mit
Code: Alles auswählen
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
AProcess.Terminate(0);
AProcess.Free;
end;