Страница 1 из 1

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

СообщениеДобавлено: 20.11.2016 21:38:39
Виталий
Всем привет. Возникла необходимость передавать данные из одного ПО в другое.
Обе - оконные.
Одна вызывает другую через TProcess.
Вопрос: Как правильно через его свойства пайпов передать строку (строки) в запускаемую программу, как в запускаемой принять и считать эти строки и вернуть ответ?
Если не сложно - хотелось бы видеть пример.

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

СообщениеДобавлено: 21.11.2016 08:32:34
Снег Север
Если ода вызывает другую, то что мешает передать данные через параметры? Или использовать стандартную клиент-серверную схему - море примеров под делфи?

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

СообщениеДобавлено: 21.11.2016 13:22:42
mig-31
Если обе программы на FreePascal так можно использовать TSimpleIpClient/TSimpleIPServer

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

СообщениеДобавлено: 21.11.2016 14:23:36
olegy123
Стандартными:
Код: Выделить всё
program Project1;

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

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

Добавлено спустя 2 минуты 1 секунду:
как получить в главной проге параметры можно почитать тут:
http://wiki.freepascal.org/Executing_External_Programs/ru

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

СообщениеДобавлено: 27.11.2016 12:24:08
Виталий
Понятно. Спс. Буду искать другой способ.

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

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