Взаимодействие программ между собой...

  • Автор темы prosto_lynx
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

prosto_lynx

#1
В книге "Borland C++ Builder. Освой самостоятельно за 21 день" в главе 15 описывается работа с OLE. В качестве примера взяты программы из стандартного набора Builder 6.0, расположенные в ...Examples\Apps\Autocon и ...Examples\Apps\Autosrv.
При запуске всё работает (в autocon задаю изменения для Edit-поля из Autosrv и успешно всё работает)
НО в них листинги другие... Там, как я понимаю сделано: через tlb, т.е. библиотеки типов (на сколько я понял из wiki это другой подход)

Народ подскажите, как лучше сделать и где более наглядно и понятно написано об этих способах?
Мне нужно сделать отдельную прогу, которую я смогу запускать, как самостоятельный модуль (exe-файл, который запускает пользователь и в окне меняет настройки). Но еще и должна быть возможность запустить её из второй моей программы, которая запустив её самостоятельно выполняет в ней некоторые действия и закрывает её (вторая прога должна всё это проделать без вмешательства пользователя.)
 

DarkKnight

Well-known member
01.08.2010
653
0
#2
Еще рас опиши проблему по шагам, что нужно сделать, из чего, и как это сделанное должно работать...
А там уже разберем пример....
 
P

prosto_lynx

#3
Есть две программы (обе в процессе написания и могут быть изменены так, как нужно):
1ая: при запуске выдает форму с настройками, пользователь вводит все необходимые ему настройки и по кнопке "применить" прога настраивает внешнее устройство.
2ая: занимается всякими другими вещами, но должна иметь возможность, используя первую прогу, настроить внешнее устройство под себя (т.е. запустить первую прогу и задать ей определенные настройки для устройства.)

Как лучше реализовать в данном случае взаимодействие программ?

P.S. Я сейчас решил делать так: вторая прога просто перед запуском первой создает на диске файл с настройками, а первая (если этот файл существует) настраивает устройство, удаляет файл и сама закрывается.
Мне кажется подход не очень хороший, но в других способах не получилось разобраться.((
 
A

alexsid

#4
Как лучше реализовать в данном случае взаимодействие программ?
любой IPC подойдет:
1. Pipes, Named pipes
2. sockets (tcp/udp)
3. комаандная строка
4. Файлы
5. разделяемая память
6. можно в винде искать контролы и прямо в них данные вставлять
и т.д.
 

DarkKnight

Well-known member
01.08.2010
653
0
#5
P.S. Я сейчас решил делать так: вторая прога просто перед запуском первой создает на диске файл с настройками, а первая (если этот файл существует) настраивает устройство, удаляет файл и сама закрывается.
Мне кажется подход не очень хороший, но в других способах не получилось разобраться.((
Ну кстати подход ты выбрал правельный... Только в данном случае лучше использовать ни файл, а реестр-Windows.... Такой вариант наилучший для твоей задачи и удалять ничего не нужно.... Кстати вторая тоже может первоначальные настройки от туда же читать.... Что бы все парамметры с нуля не указывать....

А так "alexsid" все правельно перечислил....
 
P

prosto_lynx

#6
С использованием реестра как-то не хочется... Меня просто как пользователя очень напрягают проги, которые реестр хламят.... тем более, когда нет в этом никакой необходимости...))
Поэтому сейчас склоняюсь (и пока сделал) с помощью командной строки и ключей. Но всплыли тут другие нужности: теперь хочется научиться не только передавать запускаемой программе параметры, но и после их обработки этой программой, забирать их обратно для использования в основной программе.

А именно:
Одна программа запускает вторую (передавая ей некоторые параметры с помощью параметров запуска - ключей), после выполнения вторая программа должна вернуть эти параметры (в обработанном виде) первой.
Может ли вторая прога по завершении возвращать какие-то параметры первой (например, как функция может иметь выходные параметры)?
Или может быть можно во вторую прогу сразу передавать ссылку на область памяти с этими переменными, что бы она работала сразу с ними, а не с их копиями?
 

vital

Больной Компом Детектед
29.01.2006
2 432
34
#7
Может ли вторая прога по завершении возвращать какие-то параметры первой (например, как функция может иметь выходные параметры)?
4. Файлы
5. разделяемая память
6. можно в винде искать контролы и прямо в них данные вставлять
 
Статус
Закрыто для дальнейших ответов.