2009-06-29 7 views
27

Próbuję napisać aplikację konsoli Delphi, która tworzy TStream dla standardowego wejścia, a inny TStream dla jego standardowego wyjścia.Otwieranie TStream na stdin/stdout w aplikacji konsoli Delphi

(Zostanie uruchomiona przez aplikację hosta z wejściowym i wyjściowym przekierowaniem do potoków i będzie przekazywać dane binarne do/z tej aplikacji hosta, więc TStream będzie znacznie lepiej dopasowany do zadania niż ReadLn/WriteLn .)

Jak mogę otworzyć TStream na standardowym wejściu lub standardowym wyjściu?

Odpowiedz

36

Off szczycie mojej głowie:

InputStream := THandleStream.Create(GetStdHandle(STD_INPUT_HANDLE)); 
    OutputStream := THandleStream.Create(GetStdHandle(STD_OUTPUT_HANDLE)); 

Daj że iść ..

+4

i powiedzieć nam, czy to działa, proszę! –

+4

Rzeczywiście tak, bardzo ładnie. Dzięki! –

+1

Zauważ, że będziesz potrzebować jednostki Windows w swojej klauzuli uses dla funkcji GetStdHandle. – Drarok

Powiązane problemy