Вывод консоли в программу (Решено)

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

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

Ответить
alex208210
постоялец
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Вывод консоли в программу (Решено)

Сообщение alex208210 »

Можно ли захватить вывод консоли в программу, например в memo, после выполнения команды

shell('echo "Вывод"');

Получается что "вывод" порождает процесс основной программы.. можно ли как нибудь его перенаправить в memo ?
Последний раз редактировалось alex208210 11.07.2010 17:54:59, всего редактировалось 1 раз.
serg_iv
постоялец
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

Сообщение serg_iv »

тут посмотри, должно помочь
viewtopic.php?f=1&t=2311&st=0&sk=t&sd=a&start=15
alex208210
постоялец
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Сообщение alex208210 »

угу помогло)

Код: Выделить всё

uses process;
procedure TForm1.vivod;
var
 S : TProcess;
 Buf, ss : ansistring;
 Count : longint;
begin
  S:=TProcess.Create(Nil);
  S.Commandline:='echo "Вывод"';
  S.Options:=[poUsePipes,poNoConsole];
  S.execute;
  SetLength(buf, 1000);
  Repeat
    Count:=s.output.read(buf[1], length(buf));
    ss:=ss + Copy(buf, 1, Count-1);
  until Count=0;
  S.Free;
  memo1.Lines.Add(ss);
end;
Ответить