получить вывод другой программы

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Re: получить вывод другой программы

Сообщение Attid » 24.02.2009 23:18:45

подняли похожую тему в конфе там кинули ссылку на использовани mplayer
http://svn.berlios.de/svnroot/repos/cac ... player.pas

сохраню для потомков. например так можно показывать видео в линуксе из лазаруса. правда не смотрел передается ли там хендл окна в котором проигрывать, но если что можно прикрутить.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2583
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: получить вывод другой программы

Сообщение alex208210 » 11.07.2010 19:56:00

program prrocess;
{$mode objfpc}{$H+}
uses classes,process;

Const
TheProgram = 'ls -a';

Var
S : TProcess;
Buf, ss : ansistring;
Count : longint;
begin
S:=TProcess.Create(Nil);
S.Commandline:=theprogram;
S.Options:=[poUsePipes,poNoConsole];
S.execute;
SetLength(buf, 1000);
Repeat
Count:=s.output.read(buf[1], length(buf));
ss:=ss + Copy(buf, 1, Count);
until Count=0;
writeln(ss);
S.Free;
writeln('finished Ok.');
end.

по этому примеру будет выводиться информация только для одной команды.. как вывести содержимое консоли например если параметр theprogram будет равен "ifconfig | grep eth0" ?
alex208210
постоялец
 
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Re: получить вывод другой программы

Сообщение Brainenjii » 11.07.2010 21:25:45

Код: Выделить всё
Const
  TheProgram = 'bash -c "/sbin/ifconfig|grep eth0"';
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1352
Зарегистрирован: 10.05.2007 00:04:46

Re: получить вывод другой программы

Сообщение alex208210 » 11.07.2010 22:47:15

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

Пред.

Вернуться в Free Pascal Compiler

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

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

Рейтинг@Mail.ru