Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Pipes zu mehreren Anwendungen gleichzeitig

  Alt 11. Sep 2008, 17:02
Du erstellst zurzeit einen Thread aber lässt diesen nicht laufen. Durch den direkten Aufruf von Execute rufst du zwar eine Methode des Threadobjectes auf aber eben aus dem Hauptthread heraus (ist als würdest du irgend eine andere Funktion aufrufen).
Anstelle des Aufrufes von Execute musst du den Thread einfach mit Resume wieder los laufen lassen (schließlich hast du ihn suspended gestartet).
Allerdings hast du da noch einen Denkfehler drin. Denn bei resume hält der hauptthread nicht an sondern läuft weiter und arbeitet dann das Thread.Free ab was den Thread der ja grad erst losläuft schon wieder beendet.

Mach es also lieber so:
Delphi-Quellcode:
Thread := TPipeThread.Create(true);
Thread.Pipe := Self;
Thread.ProcessHandle := pi.hProcess;
Thread.FreeOnTerminate = TRUE;
Thread.resume;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat