Добрый день!
Прочитал статью о работе с TProcess - http://wiki.lazarus.freepascal.org/Exec ... rograms/ru. Всё замечательно, только вот не понятно, а как тот процесс, который я запускаю, определяет процесс, которым он запущен и пишет ему ответ. Т.е. как читать понятно, а как и куда писать в статье опущено. Дайте пожалуйста ссылку на рабочий пример общения двух процессов.
Помогите разобраться с in/out TProcess
Модератор: Модераторы
Вызываемай процесс получает Handle Анонимных пайпов через стандартные потоки StdOut и StdIn. Для чтения и записи можно пользоваться стандартными функциями Read и Write либо работать с вводом/выводом через потоки.
Запись при помощи потока
Чтение из потока
Код: Выделить всё
var
sIn: TInputPipeStream;
sOut: TOutputPipeStream;
begin
sIn:=TInputPipeStream.Create(StdInputHandle);
sOut:=TOutputPipeStream.Create(StdOutputHandle);
end;
Запись при помощи потока
Код: Выделить всё
sOut.WriteString('Hello!');
Чтение из потока
Код: Выделить всё
while sIn.NumBytesAvailable>0 do // Если есть данные в буфере
sIn.ReadString(s);
