![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача сообщений из одного сервиса другому [D5, WinXP]
BSD © (2002-10-29 12:40:00)Всем добрый день!
Подскажите плз как организовать передачу сообщений из одного сервиса в дугой.
BSD (2002-10-29 18:35:00) [1]Вот блин, я всетаки разобрался!
Дело оказалось все в том же Interactive...
BSD (2002-10-29 18:26:00) [2]Спасибо.Попробую...
AKu (2002-10-29 17:07:00) [3]Обычными сообщениями этого сделать, я думаю, не удастся в принципе, так как у сервисов вообще нет своей очереди сообщений. Её можно создать только для дочернего окна сервиса (CreateForm...). Вооще говоря, это решается с помощью посылки сообщений через SCM (Service Control Manager). SCM позволяет только лишь послать сервису сообщение об изменении параметров, а вот о получении самих изменившиехся параметров или сообщений сервис должен заботиться исключительно сам. Одни из самых удобных вариантов - это передача сообщений через файл или через реестр. Как посылать сообщения через SCM хорошо написано где-то на дельфийских сайтах, мне кажется, что на delphi.xonix.ru.
А если приспичило через нормальный PostMessage, то создай невидимую форму и посылай сообщения ей, только не забудь поставить в свойствах сервиса Interactive(? sorry,не помню точное название):=True, а то Windows не сможет ему сообщения посылать.
BSD (2002-10-29 15:33:00) [4]Блин, проинициализировал очередь с помощью PeekMessage, а всеравно ERROR_INVALID_THREAD_ID. Что делать? :(
BSD (2002-10-29 13:14:00) [5]А как ее проинициализировать?
Cobalt (2002-10-29 13:09:00) [6]Может, в сервисе не инициализирована очередь сообщений?
GetMessage/что-нить в этом роде?
BSD (2002-10-29 13:02:00) [7]Я использую PostThreadMessage, но GetLastError возвращает
ERROR_INVALID_THREAD_ID. В чем дело?