Hallo Fisti,
Zitat von
Fisti:
Mein aktueller Code:
Delphi-Quellcode:
procedure TMainForm.Button1Click(Sender: TObject);
var
_myForm: TForm1;
begin
//...
//Warten bis externe Software beendet wurde
_WaitResult := WaitForSingleObject(_ProcessInfo.hProcess, INFINITE);
//...
end;
Da beim Starten der externen Software meine MainApp blockiert wird, wird auch mein Hinweis-Form "_myForm" blockiert (man sieht nur weis) und ich sehe nicht was da ausgegeben wird.
Ich würde dir ein Warten mit zusätzlichen Message raten anstatt von WaitForSingleObject
Delphi-Quellcode:
Fertig := FALSE;
repeat
Erg := MsgWaitForMultipleObjects(1, _ProcessInfo.hProcess, FALSE, INFINITE, QS_ALLINPUT);
if Erg <> WAIT_OBJECT_0 then
begin
// hier kam eine Windowsbotschaft
Application.ProcessMessages;
// Wurde die Anwendung selber terminiert?
if Application.Terminated then Fertig := TRUE;
// Irgendetwas anderes prüfen??
end else
begin
// der Process ist beendet...
Fertig := TRUE;
end;
until Fertig;
Das sollte dich einen Schritt weiter bringen.
Gruß, Chris
[EDIT]begin vergessen -> Code ist nicht getestet
[/EDIT]