Помогите разобраться с in/out TProcess

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Помогите разобраться с in/out TProcess

Сообщение Boris3B » 24.11.2008 11:43:48

Добрый день!

Прочитал статью о работе с TProcess - http://wiki.lazarus.freepascal.org/Exec ... rograms/ru. Всё замечательно, только вот не понятно, а как тот процесс, который я запускаю, определяет процесс, которым он запущен и пишет ему ответ. Т.е. как читать понятно, а как и куда писать в статье опущено. Дайте пожалуйста ссылку на рабочий пример общения двух процессов.
Boris3B
новенький
 
Сообщения: 11
Зарегистрирован: 17.11.2008 18:34:10

Re: Помогите разобраться с in/out TProcess

Сообщение Mr.Smart » 24.11.2008 15:29:39

Вызываемай процесс получает 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);
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Помогите разобраться с in/out TProcess

Сообщение Boris3B » 24.11.2008 16:42:39

Спасибо!
Boris3B
новенький
 
Сообщения: 11
Зарегистрирован: 17.11.2008 18:34:10


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41

Рейтинг@Mail.ru