подняли похожую тему в конфе там кинули ссылку на использовани mplayer
http://svn.berlios.de/svnroot/repos/cac ... player.pas
сохраню для потомков. например так можно показывать видео в линуксе из лазаруса. правда не смотрел передается ли там хендл окна в котором проигрывать, но если что можно прикрутить.
получить вывод другой программы
Модератор: Модераторы
-
alex208210
- постоялец
- Сообщения: 207
- Зарегистрирован: 12.05.2010 13:16:51
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" ?
{$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" ?
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Код: Выделить всё
Const
TheProgram = 'bash -c "/sbin/ifconfig|grep eth0"';
-
alex208210
- постоялец
- Сообщения: 207
- Зарегистрирован: 12.05.2010 13:16:51
спасибо, работает)
