Форум: "WinAPI";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
ВнизПосылка сообщению сервису (службе) и наоборот. Найти похожие ветки
← →
Sheriff (2003-01-22 15:43) [0]Здравствуйте умельцы :). Я тут первый раз на форуме, но вот такая проблемка у меня.
Есть программа (сервис, служба), написанная с использованием компонента TService и таймеров. Проблема заключаеться в "наблюдении" за действием сервиса, т.е. что в данный момент делает сервис. Допустим есть 2 действия сервиса: 1. Опрос сом-порта и 2. Запись данных в базу данных. Хочу сделать небольшую програмку, которой бы сервис посылал сообщения о том, что в данный момент он делает. Сообщения я регистрирую сам. Только вот почемуто сервис не хочет отправлять сообщения, хотя на стади проектирования (когда я делаю проверочную прогонку) он отправляет их. В чем дело? Отправляю сообщения таким образом - SendMessage(Hdl,WM_Scan,0,0), где Hdl - хэндл окна, которому посылаеться сообщение, а WM_Scan - мое зарегестрированное сообщение.
Если кто знает об этом деле поподробнее, плиз обьясните.
← →
Sheriff (2003-01-22 15:51) [1]и еще заодно если кто знает как сделать так, чтобы эта служба (сервис) принимала мои сообщения. Стандартными функциями типа TMyServise.DefaultHandler(var Mesage) не перехватываються, или я посылаю неправильно. Посылаю соответственно - SendMessage(hservice,WM_MyMessage,0,0). Вроде Hservice определяю правильно, хотя в этом месте тоже есть вопросик небольшой, но наверно пока хватит на сегодня. :) Если кто хоть чем поможет - буду очень благодарен!
← →
Digitman (2003-01-22 15:53) [2]см. OpenService() и ControlService()
← →
Набережных С. (2003-01-22 17:44) [3]Что-то последнее время косяком пошли. Сезон, что ли? :))
Твой сервис выполнеятся в собственной оконной станции. Либо сделай его интерактивным, либо потребуется следующее:
Запусти в сервисе доп. поток с дескриптором интерактивного юзера, подключи его к дефолтному столу интерактивной станции и в нем принимай и отправляй сообщения.
Или сам этот поток используй для взаимодействия с пользователем, или запускай интерактивную прогу сервисом... да много вариантов
← →
ZZ (2003-01-22 18:27) [4]либо потребуется следующее:
Запусти в сервисе доп. поток с дескриптором интерактивного юзера, подключи его к дефолтному столу интерактивной станции
А на практике это проверено?? А то есть небольшие сомнения в возможности подчеркнутого (как раз таки из за разных станций : интерактивной и той, где находятся "systemные" сервисы)
Sheriff
Из кучи вариантов общения между прогами - оконные сообщения, имхо, самый бредовый для сервисов.
← →
Набережных С. (2003-01-22 19:13) [5]>ZZ ©
>А на практике это проверено??
Разумеется.
← →
Набережных С. (2003-01-22 19:14) [6]И как раз для "systemных" это проще всего
← →
Sheriff (2003-01-22 21:37) [7]ZZ - а какой способ лучше? Я просто то что знаю, то и делаю, ты название скажи, я там разберусь, найду доки по теме, не проблема...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c