Einzelnen Beitrag anzeigen

Kyro

Registriert seit: 16. Aug 2005
Ort: Wien
45 Beiträge
 
Delphi XE2 Professional
 
#1

Verzögerte Ausgabe beim Umleiten von stdout bei gpupdate.exe

  Alt 18. Mai 2014, 01:33
Ich teste gerade das Umleiten der Bildschirmausgabe von Commandline-Tools mit dem üblichen dafür geeigneten Code mit Pipe und stdout.
Zur Zeit kommt der Code von Apollonius zum Einsatz, der sogar overlapped I/O verwendet.

Das funktioniert an sich ganz gut - es sei denn man ruft z.B.: die "gpupdate.exe" damit auf ...
Dann passiert folgendes...
gpupdate.exe startet -> beendet -> Und zum Schluss gibt es erst die Bildschirmausgabe:

Die Richtlinie wird aktualisiert...

Die Aktualisierung der Benutzerrichtlinie wurde erfolgreich abgeschlossen.
Die Aktualisierung der Computerrichtlinie wurde erfolgreich abgeschlossen.


(gpupdate.exe braucht dazu ca. 15 Sekunden)

Erwarten würde ich mir (da es auch so in der Eingabeaufforderung ausgegeben wird) ...
gpupdate.exe startet -> Gibt "Die Richtlinie wird aktualisiert..." aus -> Und gibt zum Schluss die restlichen Zeilen aus.

Für einen Vergleich kann man "ping 127.0.0.1" ausprobieren - Das klappt mit dem Code einwandfrei - hier kommt jede Zeile genau dann rein wie es in der Eingabeaufforderung passiert.

Nachtrag:
Inzwischen denke ich dass ich die Ursache dafür schon kenne -> (stdout <> console)
Wie kann man den Console Output (CON) abgreifen?

Geändert von Kyro (18. Mai 2014 um 12:59 Uhr) Grund: siehe Post #3
  Mit Zitat antworten Zitat