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