?
Soweit bin ich ja zufrieden, aber jetzt habe ich noch ein Problem:
Ich rufe per Knopfdruck ein Konsolenprogramm auf und will die ganzen Ausgabe aus der Pipe in einem Memo ausgeben. Solange das Konsolenprogramm läuft funktioniert das Ganze auch. Wenn das Konsolenprogramm beendet wird hängt mein Programm.
Das liegt natürlich daran, daß ReadFile erst wieder zurück kommt, wenn aus der Pipe etwas gelesen wurde. Wenn das Konsolenprogramm aber beendet wurde, kommt ReadFile nie mehr zurück. Deshalb frage ich vorher mit MsgWaitForMultipleObjects ab ob irgend ein Event vorliegt und setzte ein Timeout von 1 Sekunde. Nur wenn es sich dann nicht um einen Timeout handelt rufe ich ReadFile auf. Die letzte Ausgabe des Konsolenprogramms führt auch wieder zum ReadFile, doch dann ist das Konsolenprogramm leider schon beendet und ich habe wieder meinen Deadlock. Nur wenn ich das Ende des Prozesses mit GetProcessTimes abfrage und es wurde nichts mehr vom Konsolenprogramm ausgegeben, kann mein Programm ohne Deadlock beendet werden.
Mach ich hier irgend etwas zu kompliziert oder hat jemand eine Idee wie ich das Problem lösen kann?
Bye - Peter