TProcess, Пайпы. Передача данных из оконки в оконку

Общие вопросы программирования, алгоритмы и т.п.

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

TProcess, Пайпы. Передача данных из оконки в оконку

Сообщение Виталий » 20.11.2016 21:38:39

Всем привет. Возникла необходимость передавать данные из одного ПО в другое.
Обе - оконные.
Одна вызывает другую через TProcess.
Вопрос: Как правильно через его свойства пайпов передать строку (строки) в запускаемую программу, как в запускаемой принять и считать эти строки и вернуть ответ?
Если не сложно - хотелось бы видеть пример.
Виталий
новенький
 
Сообщения: 40
Зарегистрирован: 05.01.2013 22:33:11

Re: TProcess, Пайпы. Передача данных из оконки в оконку

Сообщение Снег Север » 21.11.2016 08:32:34

Если ода вызывает другую, то что мешает передать данные через параметры? Или использовать стандартную клиент-серверную схему - море примеров под делфи?
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3038
Зарегистрирован: 27.11.2007 16:14:47

Re: TProcess, Пайпы. Передача данных из оконки в оконку

Сообщение mig-31 » 21.11.2016 13:22:42

Если обе программы на FreePascal так можно использовать TSimpleIpClient/TSimpleIPServer
mig-31
постоялец
 
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Re: TProcess, Пайпы. Передача данных из оконки в оконку

Сообщение olegy123 » 21.11.2016 14:23:36

Стандартными:
Код: Выделить всё
program Project1;

begin
  writeln ('Param: '+ParamStr(0));
end.

запускаешь
> project1 [параметр]
выдает:
>'Param: [параметр]

Добавлено спустя 2 минуты 1 секунду:
как получить в главной проге параметры можно почитать тут:
http://wiki.freepascal.org/Executing_External_Programs/ru
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: TProcess, Пайпы. Передача данных из оконки в оконку

Сообщение Виталий » 27.11.2016 12:24:08

Понятно. Спс. Буду искать другой способ.
Виталий
новенький
 
Сообщения: 40
Зарегистрирован: 05.01.2013 22:33:11

Re: TProcess, Пайпы. Передача данных из оконки в оконку

Сообщение olegy123 » 27.11.2016 23:33:59

через TProcess сложно контролировать работу другого процесса.
Если нужно просто запустить одну через другую и отработав вторая передает перовой результат - то самое постое: классика - стандартный ввод вывод. Как пример ping команда в шеле..
Но если же нужно запустив и контролировать вторую.. проще работать в режиме клиент-сервер: Кто то будет ведущим, а кто то станет ведомым..
реализаций много: TSimpleIpClient/TSimpleIPServer, TCP/UDP, ShareMemory, Pipe(Windows)/DBUS(Linux)...
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20


Вернуться в Общее

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

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

Рейтинг@Mail.ru