Работа с командной строкой

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

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

Ответить
GENI
новенький
Сообщения: 12
Зарегистрирован: 16.11.2008 19:54:30
Откуда: Arkhangelsk
Контактная информация:

Работа с командной строкой

Сообщение GENI »

Подскажите плиз как работать с командной строкой в lazarus. Например мне надо запустить команду help в linux, получить ответ и вывести его в Memo.
То же и в Windows. В гугле ничего толкового, а wiki не отвечает почему-то.
GENI
новенький
Сообщения: 12
Зарегистрирован: 16.11.2008 19:54:30
Откуда: Arkhangelsk
Контактная информация:

Сообщение GENI »

Эту ссылку на wiki я знаю, но по неким причинам у меня fx выдаёт, что время истекло.
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

GENI писал(а):Эту ссылку на wiki я знаю, но по неким причинам у меня fx выдаёт, что время истекло.

Вики лежит. Поднимут её только завтра.

По вашему вопросу: смотрите компонент TProcess. Тема неоднократно поднималась на форуме, и, кажется, на freepascal.ru есть по нему статья.
Аватара пользователя
carrots
постоялец
Сообщения: 138
Зарегистрирован: 28.03.2008 01:13:02

Сообщение carrots »

GENI писал(а):Подскажите плиз как работать с командной строкой в lazarus. Например мне надо запустить команду help в linux, получить ответ и вывести его в Memo.
То же и в Windows. В гугле ничего толкового, а wiki не отвечает почему-то.


Вот пример с вики:

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

// Это демо-программа, показывающая, как запускать
 // внешнюю программу и читать ее вывод
 program launchprogram;
 
 // Подключаем модули
 uses
   Classes, SysUtils, Process;
 
 // Опысываем переменную "AProcess"
 // И добавляем список строк TStringList для сбора данных
 // из вывода программы
 var
   AProcess: TProcess;
   AStringList: TStringList;
 
 // Начинаем нашу программу
 begin
   // Создаем объект TProcess
   AProcess := TProcess.Create(nil);
 
   // Создаем объект TStringList
   AStringList := TStringList.Create;
 
   // Зададим командную строку
   AProcess.CommandLine := 'ppc386 -h';
 
   // Установим опции программы. Первая из них не позволит нашей программе
   // выполнятся до тех пор, пока не закончит выполнение запущенная программа
   // Также добавим опцию, которая говорит, что мы хотим прочитать
   // вывод запущенной программы
   AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
 
   // Теперь запускаем программу
   AProcess.Execute;
 
   // Пока запущенная программа не закончится, досюда мы не дойдем
 
   // А теперь прочитаем вывод в список строк TStringList.
   AStringList.LoadFromStream(AProcess.Output);
 
   // Сохраним вывод в файл
   AStringList.SaveToFile('output.txt');
 
   // После сохранения файла мы можем уничтожить
   // TStringList и TProcess.
   AStringList.Free;
   AProcess.Free;   
 end.
 
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

GENI
Данный вопрос был разжеван на форуме. Но к сожалению поиском пользоваться не кто не хочет!
http://freepascal.ru/forum/viewtopic.php?f=5&t=3876
http://freepascal.ru/forum/viewtopic.php?f=1&t=3563
http://freepascal.ru/forum/viewtopic.php?f=1&t=2311
и т.д.
Аватара пользователя
EmeraldMan
постоялец
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород
Контактная информация:

Сообщение EmeraldMan »

У меня тоже вопросик.
Надо сделать старт апачу, а для этого нужно обращаться через sudo, который запрашивает пароль.
Так вот как при запуске программы передать пароль от суперпользователя?
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

visudo и сказать чтобы при запуске апача не просил пароль у данного пользователя.
Ответить