![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обмен данными между двумя приложениями [D5, Win95/98, WinME, NT4, Win2k, WinXP]
Анатолий © (2002-12-15 19:05:00)Существует проблема:
надо организвать обмен данными между двумя запущенными программами, немогу выбрать механизм передачи данных, sendmessage и буфер обмена отпадают, Если делать через OLE, то надо регистрировать одну из программ, чтобы получить CLSID, как поступить ? сейчас увидел мессагу в форуме от 2000 года, в ней что то о совместной памяти двух приложений, Memory mapped files по-моему, если кто нибудь делал что то подобное или представляет себе процесс шлите всё на почту !!!!
очень надо !
int64 (2002-12-15 22:07:00) [1]Ещё можно добавить DDE, pipes, сокеты.
Примеры намылил (тамже WM_CopyData и MMF).
А также порекомендую интересный пример связи с подключениями к событиям СОМ через IConnectionPointContainer:
http://www.techvanguards.com/files/DelphiSinkDemo.zip
Оливейра (2002-12-15 21:24:00) [2]В принципе, если вы знакомы с OLE...
см. GlobalAlloc, CreateStreamOnHGlobal, GetHGlobalFromStream и интерфейс IStream.
Сам полученный HGlobal можно передавать посредством SendMessage.
Юрий Зотов (2002-12-15 20:32:00) [3]1. Почему отпадают SendMessage/PostMessage/PostThreadMessage и им подобные? Если из-за размера передаваемой информации, то обратите внимание на WM_COPYDATA. Это, наверное, самый простой способ.
2. Memory mapped file - немного сложнее, но тоже решает задачу. Сделайте поиск слова CreateFileMapping или посмотрите простой пример здесь:
http://www.delphikingdom.com/helloworld/samples_win.htm
(пример № 1): http://delphi.mtu-net.ru/zip/cunnings.zip
Sha (2002-12-15 19:47:00) [4]А самому поискать трудно?