Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-39312
Alexey_ural
2003-03-04 14:46
2003.03.13
Безформенное, но не консольное приложение


6-39454
Mutex
2003-01-02 19:09
2003.03.13
Socket


7-39610
Amien
2003-01-19 15:43
2003.03.13
Как узнать/изменить серийный номер тома HDD?


3-39233
Ixion
2003-02-23 03:15
2003.03.13
BDE vs ADO


1-39290
АндрейБ
2003-03-03 15:21
2003.03.13
QuickReport: печать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский