Работа с консолью(Линукс)
Модератор: Модераторы
Работа с консолью(Линукс)
Хочу автоматизировать работу консольной комманды. Нужно, чтобы в консоль что-либо написалось и выполнилось.
Мне нужен не код а сам принцип... как я понял для всего этого нужно создать процесс,myproc.commandline-у любого процесса своя консоль получается?
LazRus писал(а):Мне нужен не код а сам принцип... как я понял для всего этого нужно создать процесс,myproc.commandline-у любого процесса своя консоль получается?
http://freepascal.ru/forum/viewtopic.php?f=5&t=3876
требуется запустить команду в консоли с правами рута (sudo) ка вывести окно в котором будет просить пас?
=============
сори, ступил... сижу курю ман по "общению с тпроцесом"=)
Добавлено спустя 46 минут:
с общением с конслью разобрался=)
но как перевести программу в режим рута?
ПЫСЫ: запускать командой в терминале не предлагать=)
=============
сори, ступил... сижу курю ман по "общению с тпроцесом"=)
Добавлено спустя 46 минут:
с общением с конслью разобрался=)
но как перевести программу в режим рута?
ПЫСЫ: запускать командой в терминале не предлагать=)
спс=) про gksudo забыл 
Добавлено спустя 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;
Добавлено спустя 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;
Код: Выделить всё
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;