![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несколько вопросов по сервисам начинающего
Strate © (2008-03-25 19:44:00)Доброго всем времени суток.
Я хочу написать сервис, а точнее переделать уже существующее приложение в сервис. С сохранением функционала как сервиса, так и обычно-запускаемого приложения. Пока что вроде всё получается, возникло несколько вопросов.
Всем известно, что сервисы в автоматическом режиме запуска запускаются до входа юзера в систему. Отсюда вопрос: Если сразу при запуске сервиса создать окно, оно создастся или как? Возможно ли как то из под сервиса отловить, вошёл ли юзер в систему? Мне нужно чтобы запустился он до логона, а после логона пихнулась иконка в трей, открылось ещё окошко ну итд...
Спасибо за ответы, ну или киньте ссылкой где про всё это доступно можно почитать.
P.S. Заводить отдельный exe чисто для сервиса не хочу.
Сергей М. (2008-03-25 21:02:00) [1]
> Оболочку только
На то и оболочка.
> акромя outpost.exe ничего замечено не было
Ничто не мешает в контексте одного и дого же процесса одновременно "жить" и сервису и обычной аппликации.
Strate (2008-03-25 21:00:00) [2]Сергей М. © (25.03.08 20:57) [16]
Не суть как важно.
Ну не знаю, я просто всей кухни то не вижу... Оболочку только.
Сергей М. © (25.03.08 20:57) [15]
Сервис мог известить о поступившей ему команде на закругление тому самому апплету или аппликации, которые, в свою очередь, создали то самое окно.
Ну, акромя outpost.exe ничего замечено не было.
Сергей М. (2008-03-25 20:57:00) [3]
> Использую делфёвый TService
>
Не суть как важно.
Сергей М. (2008-03-25 20:57:00) [4]
> Как из-под сервиса отловить момент входа юзера в систему?
Это совсем другой коленкор.
На эту тему ИШ, пожалуй, даст тебе более профессиональную консультацию.
> Службу останавливал через оснастку MMC "Службы"
>
Опять же не факт, что диал.окно было создано именно процесом сервиса.
Сервис мог известить о поступившей ему команде на закругление тому самому апплету или аппликации, которые, в свою очередь, создали то самое окно.
Strate (2008-03-25 20:54:00) [5]P.S. Использую делфёвый TService
Strate (2008-03-25 20:53:00) [6]Хорошо. Тогда поставим вопрос по другому.
Как из-под сервиса отловить момент входа юзера в систему?
P.S. Службу останавливал через оснастку MMC "Службы"
Сергей М. (2008-03-25 20:47:00) [7]
> он меня спросил
> 5 минут назад попытался остановить службу Agnitium Outpost
> Firewall
Ты ее, наверно, пытался остановить тыкая мышью иконку в трее ?
Сообщения от этой иконки обрабатываются оконной ф-цией аппликации или апплета, в результате обработки сервису передается команда на закругление.
> запустил службу, и каким то чудом запузырилась иконка в
> трей.
Запущенная тобой служба вправе стартовать апплет или аппликацию, которые, в свою очередь, что-то там куда-то там "запуздыривают". Вот и все чудеса.
Strate (2008-03-25 20:40:00) [8]Сергей М. © (25.03.08 20:34) [8]
Не трынди.
Аутпост в ипостаси сервиса (по барабану из какого ехе он вылупился при старте) не создает окон и иконки в трей тоже не запуздыривает.
Мде? Вот 5 минут назад попытался остановить службу Agnitium Outpost Firewall, он меня спросил хочу ли я так поступить, при этом создав окнос сообщением. После этого запустил службу, и каким то чудом запузырилась иконка в трей.
Возможно я не знаю чегото такого просервисы, что знаете Вы? Может лучше просвятить меня, чем говорить "не трынди"? Я со всеми знаниями о программинге не рождался сразу.
Сергей М. (2008-03-25 20:35:00) [9]
> Мне надо то всего как то из под сервиса отловить момент
> входа юзера в систему
Надо так надо. Лови. Но причем здесь окна и трей ?
palva (2008-03-25 20:34:00) [10]> Если сразу при запуске сервиса создать окно, оно создастся или как?
Если сервису разрешено общаться с рабочим столом, то создастся. В противном случае возможно, что и создастся, но видно его не будет.
Также будут видны окна, сообщающие об ошибках старта сервисов.
Сергей М. (2008-03-25 20:34:00) [11]
> в аутпосте тоже ничего не хапается, сделано также, всё в
> одном exe.
Не трынди.
Аутпост в ипостаси сервиса (по барабану из какого ехе он вылупился при старте) не создает окон и иконки в трей тоже не запуздыривает.
Strate (2008-03-25 20:32:00) [12]Мне надо то всего как то из под сервиса отловить момент входа юзера в систему.
Strate (2008-03-25 20:31:00) [13]Сергей М. © (25.03.08 20:27) [4]
Т.е. я так понимаю что делать связку сервис+ещё одно прилоежние и связывать их?
Каким тогда образом CCProxy умеет работать как серсивом так и обычной аппликацией, каким образом Outpost Firewall работает и как сервисом и как аппликацией?
Strate (2008-03-25 20:28:00) [14]tesseract © (25.03.08 20:24) [3]
Странно. У меня ничего не хапается и сейчас всё нормально обрабатывается.
Кстати в аутпосте тоже ничего не хапается, сделано также, всё в одном exe.
Сергей М. (2008-03-25 20:27:00) [15]
> Но это при логоне
Логон здесь ни причем.
Причем здесь десктоп, а не логон.
> должен обрабатывать оконные сообщения
Никому он ничего не должен.
Окно и оконные сообщения - епархия аппликаций и апплетов, а не сервисов.
tesseract (2008-03-25 20:24:00) [16]
> мм.. внутри сервис должен обрабатывать оконные сообщения,
> в частности нажатия по значку в трее.
Это делаеться не в сервисе, а в стороннем приложении. Иначе сервис захапает 90% процессорного времени.
Strate (2008-03-25 20:21:00) [17]Сергей М. © (25.03.08 20:11) [1]
мм.. внутри сервис должен обрабатывать оконные сообщения, в частности нажатия по значку в трее. Но это при логоне.
Сергей М. (2008-03-25 20:11:00) [18]
> Если сразу при запуске сервиса создать окно, оно создастся
> или как?
Нахрена сервису окно ? Начнем с этого ..