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

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

Взаимодействие с service (службой)


Nucer ©   (2008-05-15 15:36:00) 

Пишу службу, необходимо обеспечить связь приложения с этой службой. Каким образом? SendMessage/PostMessage я так понимаю отпадают. Использовать TCP/IP?


  (2008-12-08 23:14:00) [1]

Удалено модератором


Leonid Troyanovsky   (2008-05-15 23:38:00) [2]


> DVM ©   (15.05.08 22:45) [4]

> Причем тут GUI? Окна к  PostThreadMessage отношения не имеют.

А я говорил про окна?
У сервиса д.б. цикл обработки сообщений.
Любой же вызов user32, как было справедливо отмечено, сделает поток гуевым.
Если же этот поток - не первичный, то место этому сервису в кунсткамере,
а авторам - в зале славы ;)

Короче говоря, RTFM: $APPTYPE

--
Regards, LVT.


DVM   (2008-05-15 22:45:00) [3]


> Для этого сервис должен быть GUI.

Для этого должна быть лишь очередь сообщений у потока. А она будет автоматически создана, как только будет вызвана хотя бы одна функция GDI или USER. А поток само собой должен выбирать сообщения из очереди.

Причем тут GUI? Окна к  PostThreadMessage отношения не имеют.


DVM   (2008-05-15 22:41:00) [4]


> При определенных условиях можно также воспользоваться PostThreadMessage

И главное из этих условий, выполнение потока службы на том же десктопе, что и вызывающий PostThreadMessage поток. Что не всегда возможно. Способ плохой.


> Nucer   (15.05.08 15:36)  

Вообще варианты такие:
1) Сокеты - самый универсальный и кроссплатформенный механизм.
2) Named Pipes - удобный, но не всегда механизм.
3) RPC - весьма мудреный способ
4) DCOM - упрощение от предыдущего
5) Совместно используемая память, в том числе MMF
6) Сообщения

Я бы сокеты выбрал.


Leonid Troyanovsky   (2008-05-15 22:04:00) [5]


> Сергей М. ©   (15.05.08 15:56) [1]

> При определенных условиях можно также воспользоваться PostThreadMessage

Для этого сервис должен быть GUI.
В любом случае ControlService лучше.

--
Regards, LVT.


Сергей М.   (2008-05-15 15:56:00) [6]


> SendMessage/PostMessage я так понимаю отпадают


Отпадают, если корреспонденты разнесены по разным хостам или сервис не взаимодействует с рабочим столом.


> Использовать TCP/IP?


Как универсальный на все случаи жизни вариант - да.

При определенных условиях можно также воспользоваться PostThreadMessage, NamedPipes, MMF


Наверх

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