Работа с консолью(Линукс)

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

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

Работа с консолью(Линукс)

Сообщение LazRus » 08.01.2009 20:31:01

Хочу автоматизировать работу консольной комманды. Нужно, чтобы в консоль что-либо написалось и выполнилось.
LazRus
незнакомец
 
Сообщения: 2
Зарегистрирован: 08.01.2009 20:20:28


Re: Работа с консолью(Линукс)

Сообщение LazRus » 08.01.2009 22:16:35

Мне нужен не код а сам принцип... как я понял для всего этого нужно создать процесс,myproc.commandline-у любого процесса своя консоль получается?
LazRus
незнакомец
 
Сообщения: 2
Зарегистрирован: 08.01.2009 20:20:28

Re: Работа с консолью(Линукс)

Сообщение Attid » 10.01.2009 11:57:33

LazRus писал(а):сам принцип

запустил процесс, пишешь ему данные , читаешь данные от него. все.

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

Re: Работа с консолью(Линукс)

Сообщение Mr.Smart » 10.01.2009 17:17:04

LazRus писал(а):Мне нужен не код а сам принцип... как я понял для всего этого нужно создать процесс,myproc.commandline-у любого процесса своя консоль получается?

http://freepascal.ru/forum/viewtopic.php?f=5&t=3876
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Работа с консолью(Линукс)

Сообщение DIEmens » 13.01.2009 02:52:01

требуется запустить команду в консоли с правами рута (sudo) ка вывести окно в котором будет просить пас?
=============
сори, ступил... сижу курю ман по "общению с тпроцесом"=)

Добавлено спустя 46 минут:
с общением с конслью разобрался=)
но как перевести программу в режим рута?
ПЫСЫ: запускать командой в терминале не предлагать=)
DIEmens
новенький
 
Сообщения: 29
Зарегистрирован: 26.10.2008 16:12:47

Re: Работа с консолью(Линукс)

Сообщение Attid » 13.01.2009 12:58:13

gksudo =) или читай исходник sudo
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: Работа с консолью(Линукс)

Сообщение DIEmens » 13.01.2009 19:05:46

спс=) про gksudo забыл :D

Добавлено спустя 36 минут 55 секунд:
проблемка=)
юзаю команду ping. создал процесс и т.д.

опции:
вписать [powaitonexit] (ожидание завершения программы) не могу, ибо программа ping выполняется вечно, т.е. моя программа повиснет и будет ожидать завершения ping который никогда не завершится=). стираю [powaitonexit] оставляю только [pousepipes], программа выполняется, я получаю нужные мне данные, в конце <name>.free; программа работает дальше, все хорошо, смотрю в список процессов - ping работает!=(
как мне его убить??????=)

вот функция:

function testconnect() : string;
var a : tprocess; st : tstringlist;
begin
result := '';
a := tprocess.Create(nil);
st := tstringlist.Create;
a.CommandLine := 'ping google.com';
a.Options := a.Options + [pousepipes];
a.Execute;
st.LoadFromStream(a.Output);
result := (st.text);
a.free;
st.Free;
end;
DIEmens
новенький
 
Сообщения: 29
Зарегистрирован: 26.10.2008 16:12:47

Re: Работа с консолью(Линукс)

Сообщение alaken » 30.03.2010 12:44:22

Код: Выделить всё
function testconnect() : string;
var a : tprocess; st : tstringlist;
begin
result := '';
a := tprocess.Create(nil);
st := tstringlist.Create;
a.CommandLine := 'ping google.com';
a.Options := a.Options + [pousepipes];
a.Execute;
st.LoadFromStream(a.Output);
result := (st.text);

if a.Terminate(0) then // так не пробовали? вдруг поможет.
  a.free;

st.Free;
end;
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13


Вернуться в Lazarus

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

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

Рейтинг@Mail.ru
cron