Вниз
Скачать: CL | DM;

переназначение станрартного выхода в поток   Найти похожие ветки 

 
oleg_   (2006-05-29 17:48) [0]

CreateProcess позволяет через TStartupInfo.hStdOutput переопределить стандартный  выход на handler, если подставить handler открытого на запись файла, то весь выход сыпется в него.
А вот как привязать стандартный выход к потоку tstream?
Сапсибо


 
umbra ©   (2006-05-29 18:10) [1]

если имеется в виду TFileStream, то у него есть свойство Handle


 
TUser ©   (2006-05-29 18:12) [2]

Просто в стрим не выйдет, т.к. это абстрактный класс, который ничего еще не умеет. Можно в какой-нибудь из наслдников класса THandleStream.


 
oleg_   (2006-05-29 21:05) [3]

сделал через пайпы, стандартный выход сразу льется в поток, но уж очень медленно получилось. Процесс при перенаправлении стандартного выхода в файл для далнейшего считывания его в поток выполняется в 20 раз быстрее чем при направлении выходного потока в пайп!  Пайпы в принцыпе медленные или может я накосячил?


 
Eraser ©   (2006-05-29 21:22) [4]


> oleg_   (29.05.06 21:05) [3]


> Пайпы в принцыпе медленные или может я накосячил?

второе )


 
oleg_   (2006-05-29 23:14) [5]

как только назначаю пайповый стандартный выход  SI.hStdOutput:=cWrite; появляются дикие тормоза на WaitForSingleObject, вродебы все верно...

 SA.nLength:=SizeOf(SECURITY_ATTRIBUTES);
 SA.bInheritHandle:=True;
 SA.lpSecurityDescriptor:=nil;
 if not CreatePipe(tRead, cWrite, @SA, 0) then Exit;
 ZeroMemory(@SI, SizeOf(TStartupInfo));
 SI.cb:=SizeOf(TStartupInfo);
 SI.dwFlags:=STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
 SI.wShowWindow:=SW_HIDE;
 SI.hStdOutput:=cWrite;
 if CreateProcess(nil, PChar(CommandLine), nil, nil, True, 0, nil, nil, SI, PI)
 then begin
        WaitForSingleObject(PI.hProcess, 5000);
        ResponseInfo.ContentStream:=THandleStream.Create(tRead);



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.06 c
15-1149848331
Чапаев
2006-06-09 14:18
2006.07.09
Создать пользователя...


2-1150706401
Уля
2006-06-19 12:40
2006.07.09
Работа с Excel


2-1149771876
HaeMa
2006-06-08 17:04
2006.07.09
Как программно узнать количество строк в текстовом файле?


1-1148903442
Priest
2006-05-29 15:50
2006.07.09
ClassInfo у класса Exception


2-1150612560
Тимофей Юрьевич
2006-06-18 10:36
2006.07.09
TidHTTP




   Наверх