Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];

Вниз

Управление службами (сервисами)   Найти похожие ветки 

 
Borys   (2003-02-18 13:23) [0]

Написано два приложение одно оконное другое как сервис. Они между собой должны общаться. Можно ли для этого использовать Message? Я сколько не пробовал ничего не вышло. Служба не принимает и не отправляет message. Есть ли какой нибудь другой метод кроме PIPE. Или есть хитрость с Message в службах? Создавать окно в службе пробовал (всеравно не работает)


 
Digitman   (2003-02-18 14:16) [1]


> Можно ли для этого использовать Message?


Тебе уже сказано - можно ! Какая разница в том, обычный это процесс или сервис-процесс ? Да никакой ! Был бы цикл диспетчеризации/обработки нужных сообщений у принимающего сообщения код.потока, остальное - дело ядра.

А вообще для управления сервисом есть т.н. штатный механизм "контроллеров".
Управляющий процесс открывает сервис (см. OpenService) и посылает ему произвольные команды (см. ControlService)
Управляемый процесс-сервис, созданный, к примеру, на базе TServiceApplication и TService, имеет соответствующую поддержку, позволяющюю реагировать на контроллеры


 
Borys   (2003-02-18 14:44) [2]

Ладно понятно. Есть ли где-нибудь пример сервиса c обменом данных? Только не на TServiceApplication или TService, а используя API.


 
Digitman   (2003-02-18 14:55) [3]

может и есть

но если голова на плечах таки присутствует, то в кач-ве отправной точки эта голова лезет в хэлп, находит описание ф-ции RegisterServiceCtrlHandler(), внимательно изучает это описание и самостоятельно реализует нужный сабж)


 
Borys   (2003-02-18 15:09) [4]

ControlService меня не устраивает.
Ну а с message думать будем


 
Digitman   (2003-02-18 15:36) [5]

ну думай, думай ... Чапай)


 
Карелин Артем   (2003-02-18 17:02) [6]

А у меня 2 сервиса между собой по TCP/IP общаются...
Просто и удобно.


 
Borys   (2003-02-18 19:12) [7]

Понимаешь когда tcp/ip или pipe надо организовывать свой процесс для проверки новых сообщений (в принципе так у меня работает тоже). А когда message то за тебя все делает система.
В принципе на pipe уже все сделал, но хочется разобраться.


 
Ihor Osov'yak   (2003-02-18 21:57) [8]

2 Borys

Предлагаю алгоритм.

1. Иследуем первым делом исходники TServiceApplication и TYahooNamesSrvc и к своему ужасу замечаем, что там нет ни одного хендлера.

2. Пьем пивко или каву (по предпочтению), продолжаем исследование, и замечаем, что в TServiceApplication.Initialize
есть такой зверь, как вызов Forms.Application.Initialize.
То есть, как минимум, можно воспользоватся зацепкой
Forms.Application.onMessage для ловли того, что будет послано на
Forms.Application.Handle с помощью PostMessage. На домашнее задание предлагается подумать, почему тут нельзя юзать SendMessage...

3. Если очень уж неймется задействовать SendMessage (иногда есть для этого довольно весткие причины ) - создаем окно и в оконной процедуре ловим соотв. сообщения. Или юзаем AllocateHWnd..






 
Borys   (2003-02-19 12:31) [9]

Будем юзать.


 
gsu   (2003-02-19 15:01) [10]

ну думай, думай ... Чапай)
В принципе на pipe уже все сделал, но хочется разобраться.
(-:|~



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
14-44455
race1
2003-03-30 15:46
2003.04.14
read speed


14-44363
arbiter
2003-03-28 16:26
2003.04.14
DBGrid с поддержкой стилей XP


6-44293
Fredericco
2003-02-18 10:56
2003.04.14
Сокеты. Проверка программы клиента наличие программы сервера.


6-44297
Adventure
2003-02-19 16:12
2003.04.14
Кто-нибудь писал PlugIn для IE?


7-44466
AndrewVolkov
2003-02-17 20:31
2003.04.14
На печать - а там пусто ????





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский