![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передать String другому приложению [D7]
flaxe © (2006-09-05 20:22:00)Нужно сделать обмен между множеством совершенно одинаковых приложений с одним другим, которое исполняет роль пульта управления.
Как организовать обмен данными типа string между приложениями?
vodvorezlaya (2006-09-07 08:29:00) [21]
> Как организовать обмен данными типа string между приложениями?
Вообще если не по сети то через Atom.
Я писал правда на форуме, но никто так и не знает как ими пользоваться.
ychenick (2006-09-06 19:48:00) [22]
> Через сокеты надо. Это ж сервер и клиенты.
и что, предлагаеш открывать порты?
Думаю всетаки нужно использовать SandMessage и обработчик сообщений к нему.
DVM (2006-09-06 17:51:00) [23]
> Нужно сделать обмен между множеством совершенно одинаковых
> приложений с одним другим
Через сокеты надо. Это ж сервер и клиенты.
Ганна Юхимівна (2006-09-06 17:39:00) [24]
> я нахожу два хэндла с именем этого процесса и на одном из
> них все работает
Handleокна может меняться... учтите это !
Сергей М. (2006-09-06 09:21:00) [25]
> flaxe © (05.09.06 22:59) [5]
> ловлю хендл по имени окна
Имени какогоокна ? Приложение может создать более чем одно окно..
> хендл по имени процесса
Это как ?
tesseract (2006-09-05 23:21:00) [26]> [5] flaxe © (05.09.06 22:59)
String не передашь, только указатель или Pchar.
А что с перехватом WM_COPYDATA? Имей в виду EnumWindows тебе первое окно и выдаст.
flaxe (2006-09-05 22:59:00) [27]У меня какой-то бред немножко...
если я ловлю хендл по имени окна, я могу послать и WM_COPYDATA и WM_CLOSE(для примера).
если я ловлю хендл по имени процесса, WM_CLOSE работает, а WM_COPYDATA - нет, создаю чистое приложение... в этот раз я нахожу два хэндла с именем этого процесса и на одном из них все работает
isasa (2006-09-05 21:27:00) [28]В запускающем приложении "помнить" все хендлы запускаемых. В вызываемый передавать параметром(или как там еще) хендл главного(куда будем WM_COPYDATA).
Джо (2006-09-05 21:25:00) [29]> [2] flaxe © (05.09.06 21:00)
> Допустим если через WM_COPYDATA... у меня получается такая
> проблема, все приложения запускаются из одного exe-шника
> с различными параметрами при этом названия окна каждое приложение
> имеет свое(в соответсвии с параметром, причем оно может
> динамически меняться), как мне в таком случае получить handle
> всех окон? названия процессов все одинаковы - mprog.exe
> - можно както это задействовать?
EnumWindows для перебора всех окон. А для идентификации окон не лучше ли использовать предопределенные классы окон?
flaxe (2006-09-05 21:00:00) [30]Допустим если через WM_COPYDATA... у меня получается такая проблема, все приложения запускаются из одного exe-шника с различными параметрами при этом названия окна каждое приложение имеет свое(в соответсвии с параметром, причем оно может динамически меняться), как мне в таком случае получить handle всех окон? названия процессов все одинаковы - mprog.exe - можно както это задействовать?
Eraser (2006-09-05 20:26:00) [31]> [0] flaxe © (05.09.06 20:22)
используй один из механизмов IPC (межпроцессной коммуникации), например сообщение WM_COPYDATA или Named Pipes.