Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Передать String другому приложению [D7]


Страницы:   1 2

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.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо