![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сервисы в Win2k [D7, Win2k, WinXP]
dr Tr0jan © (2004-01-31 12:05:00)Я хочу написать сервис под Win2k/XP без формы, который являлся бы сервером TCP (хочу использовать компонент TidTCPserver). В инете натолкнулся на статью "Написание сервисов Windows NT на WinAPI" ( http://www.sources.ru/delphi/system/services_in_api.shtml). Но здесь сразу возникнуло несколько проблем:
1) У них в статье есть функция "ServiceInitialization" - она не описана. Как написать ее?
2) Как запускать этот сервис, и сделать так чтобы он прописался в системе, и чтобы удалился из оной (хотя бы куда пихать exeшник, и куда в реестре что прописывать - типа хочу сделать инсталляшку и анинсталляшку этого сервиса)?
3) Хотелось бы достать исходники этого сервиса написанного по этой статье!
dr Tr0jan (2004-02-06 15:03:00) [1]Опять извините: http://www.delphimaster.ru/cgi-bin/forum.pl?id=1076064199&n=4
dr Tr0jan (2004-02-06 09:16:00) [2]Уупс, извините:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1076048097&n=4
dr Tr0jan (2004-02-06 09:07:00) [3]Большое спасибо Всем за помощь в разработке сервисов!!!
И давайте больше не будем обливать друг-друга грязью ("Ты ламо." - "Нет, это ты ламо." - "Нет, я же говорю: все таки ты ламо.")
Теперь прошу помощь в доработке этого сервиса, как TCP-сервер:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1076020615&n=4
dr Tr0jan (2004-02-06 09:07:00) [4]Большое спасибо Всем за помощь в разработке сервисов!!!
И давайте больше не будем обливать друг-друга грязью ("Ты ламо." - "Нет, это ты ламо." - "Нет, я же говорю: все таки ты ламо.")
Теперь прошу помощь в доработке этого сервиса, как TCP-сервер:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1076020615&n=4
dr Tr0jan (2004-02-06 01:36:00) [5]2 Digitman ©:
> в этих исходниках Борланд делает практически ВСЕ касаемое создания, инсталляции и работы сервиса ! вот у тебя перед носом штатный Win32-хэлп, где можно почитать про ф-ции, назначение/параметры/результат которых тебе непонятны по ходу изучения тех или иных фрагментов исходников ..
Я это уже давно почитал, еще как sniknik ©мне сказал про ссылку, я додумался в Delphi на юнит Ctrl нажать, дело в том, что там комментов нет, ничего непонятно. Это уже давно доказано, что если один программер написал программу, то другому понять ее без комментариев не дано, ну или почти не дано. Я там разбраться не мог, уж слишком кода было много.
> отсюда и делаю вывод - исходные тексты ты анализировать НЕ У-МЕ-ЕШЬ !
Без комментариев, увы, не смог.
dr Tr0jan (2004-02-06 01:36:00) [6]2 Digitman ©:
> в этих исходниках Борланд делает практически ВСЕ касаемое создания, инсталляции и работы сервиса ! вот у тебя перед носом штатный Win32-хэлп, где можно почитать про ф-ции, назначение/параметры/результат которых тебе непонятны по ходу изучения тех или иных фрагментов исходников ..
Я это уже давно почитал, еще как sniknik ©мне сказал про ссылку, я додумался в Delphi на юнит Ctrl нажать, дело в том, что там комментов нет, ничего непонятно. Это уже давно доказано, что если один программер написал программу, то другому понять ее без комментариев не дано, ну или почти не дано. Я там разбраться не мог, уж слишком кода было много.
> отсюда и делаю вывод - исходные тексты ты анализировать НЕ У-МЕ-ЕШЬ !
Без комментариев, увы, не смог.
Digitman (2004-02-05 15:21:00) [7]
> ...на постном масле, а не средства создания сервисов
ну не ламо ли ты после таких заявлений ? вот уж воистину он самый)
я тебя что , понуждаю реализовывать свой сервис на базе станд.классов ?!
я тебе уже в который раз говорю, устал уже : вот у тебя исходники классов TService + TServiceApplication от Борланда, в этих исходниках Борланд делает практически ВСЕ касаемое создания, инсталляции и работы сервиса ! вот у тебя перед носом штатный Win32-хэлп, где можно почитать про ф-ции, назначение/параметры/результат которых тебе непонятны по ходу изучения тех или иных фрагментов исходников ..
что, это так трудно для "не ламо" внимательно изучить эти исходники и реализовать свой сервис по образу и подобию (в части ЦЕНТРАЛЬНОЙ логики !), выкинув все лишнее и несущественное, раз VCL тебя смущает ?!)
отсюда и делаю вывод - исходные тексты ты анализировать НЕ У-МЕ-ЕШЬ ! Что толку, что тебе приведут тело какой-нибудь ф-ции а-ля ServiceInitialization() ? Бестолку, думаю ..
dr Tr0jan (2004-02-05 14:58:00) [8]2 Digitman ©:
> в 7-ке нет никаких станд.классов для создания сервисов
Ну звиняй, ошибся!
Да дерьмо это на постном масле, а не средства создания сервисов.
2 panov ©:
> Предупреждаю - выбирай выражения.
Какие еще выражения: IF .. THEN .. ELSE, что ли :)?
panov (2004-02-05 09:50:00) [9]>dr Tr0jan ©
Предупреждаю - выбирай выражения.
Digitman (2004-02-05 08:30:00) [10]
> Чё-то я там исходников не видел: service.c, service.h и
> прочие.
а я тебе и не рекомендовал их там искать
в MSDN есть описание ВСЕХ ф-ций, относящихся к программированию сервисов
что, впрочем, почти в том же есть и в твоем хелпе
> как удалять сервис из системы?
DeleteService()
> я такого не говорил, все у меня есть: полная установка Borland
> Delphi7 Enterprise вместе со всеми хэлпами.
Тогда на кой ляд ты цитировал статью в [12] ? если у тебя не Делфи6, а полная 7-я версия ? Ты по-прежнему продолжаешь утверждать, что в 7-ке нет никаких станд.классов для создания сервисов и у тебя нет возмодности заглянуть в их исходники ?
> чё это за функция: function ServiceInitialization
выкинь ее вообще, она не играет здесь никакой роли
dr Tr0jan (2004-02-05 02:46:00) [11]Но все-таки чё это за функция: function ServiceInitialization(argc,argv,SpecificError): DWORD
dr Tr0jan (2004-02-05 02:45:00) [12]2 Digitman ©:
> значит, ресурс у тебя всегда перед носом - msdn.microsoft.com
Чё-то я там исходников не видел: service.c, service.h и прочие.
> а на конкретные вопросы ответить - это пожалуйста
Так я их конкретно и задал.
> ты спросил, как программно инсталлировать сервис ? я ответил
Я еще не только это спрашивал (см. вопрос ^):Как запускать этот сервис, и сделать так чтобы он прописался в системе, и чтобы удалилсяиз оной (хотя бы куда пихать exeшник, и куда в реестре что прописывать - типа хочу сделать инсталляшку и анинсталляшкуэтого сервиса)?
> что еще непонятно ?
Да, как удалять сервис из системы?
> хэлпа Win32 Programmer's Reference у тебя в Д7 нет в помине или тем там таких не имеется
А я такого не говорил, все у меня есть: полная установка Borland Delphi7 Enterprise вместе со всеми хэлпами.
> а что там упущено из виду - вот тогда добро пожаловать в форум !
Вот-вот, там упущено из виду: удаление сервиса из системы.
2 sniknik ©:
> не забудь спасибо сказать
Не забуду: Всем, кто помог мне, большое СПАСИБО.
sniknik (2004-02-04 14:50:00) [13]> Ничёё, может кто-нить другой объяснит как этот сервис сделать.
вряд ли. по шагам и с расстановкой только репетитор и за деньги (тот же Digitman возьмется если достаточно предложиш), сдесь направление дали уже хорошо, не забудь спасибо сказать.
есть те кто пытается но им быстро надоедает. (тяжело слышать упреки в свой адрес только изза того что подопечный не "догоняет" и вместо того чтобы "я ..... не понимаю" "ты .... плохо обьяснил", а он вообще должен?)
> А "споришь" пишется с мягким знаком
не с мягким а через щ. но это неважно. (и не оспаривается, как получается так и пишу)
Digitman (2004-02-04 14:30:00) [14]и не надо мне гнуть, что хэлпа Win32 Programmer's Reference у тебя в Д7 нет в помине или тем там таких не имеется ... все там есть ! абсолютно все ! и вполне достаточно для изучения и понимания концепции программной организации и управления сервиса... а что там упущено из виду - вот тогда добро пожаловать в форум !
Digitman (2004-02-04 14:25:00) [15]
> Вот его то, как раз и нету
чушь
в форум обращаешься ? значит, имеешь доступ в глоб.сеть ? значит, ресурс у тебя всегда перед носом - msdn.microsoft.com
> не может объяснить то что, якобы знает.
я не намерен тут тебе читать лекцию про алгоритм организации "от и до" сервиса на NT-платформе
а на конкретныевопросы ответить - это пожалуйста
ты спросил, как программно инсталлировать сервис ? я ответил - подробности в хэлпе или msdn, см. ф-цию CreateService()
спросил, как программно управлять уже установленным сервисом ? я опять же ответил - ф-ции OpenSCManager, OpenService, ControlService
что еще непонятно ?
dr Tr0jan (2004-02-04 14:15:00) [16]2 Digitman ©:
> вперед ... в MSDN !
Вот его то, как раз и нету. Не дают, а купит накладно получается. Ничёё, может кто-нить другой объяснит как этот сервис сделать.
2 sniknik © :
> ты так лутше перед зеркалом скажи, даже почаще говори, садись по утрам и повторяй в качестве аутотренинга
Я это и так делаю, шутка :).
> предлагал тебе посмотреть (ссылка в сылке)
а вот за это тебе большой респект!
> а спориш и чтото доказываеш ты совершенно зря, ведь у тебя не работает, а ты пытаешся доказать что у тебя правильно, и неправильно пишет тот человек у которого как раз работает. абсурд.
Дело не том, что он (не)правильно пишет, а втом что не может объяснить то что, якобы знает.
> а уж обиды при малейшем подозрении на то что чегото не знаеш очень показательны и очень по ламерски
И какие еще обиды? Я вообще-то извинился потом:Таким макаром у нас получился не форум, а обливание грязью, поэтому забудем старые обиды и примемся за дело.А "споришь" пишется с мягким знаком :).
sniknik (2004-02-04 08:58:00) [17]> Ты затупан!
слово то какое, красивое даже. :о))) только не тому человеку применительно сказано. (ты так лутше перед зеркалом скажи, даже почаще говори, садись по утрам и повторяй в качестве аутотренинга, для снятия с себя груза излишнего самомнения)
в той статье (в начале упоминается) все грамотно расписано, если не понимаеш твои проблемы. у меня к примеру ни одной не возникло когда писал сервис для примера на WinApi (первый и единственный раз кстати, надобности в таком не возникало более, кроме первого раза из интереса), писал по тойже самой статье(основа, +все что смог найти в инете дополнительно) то что получилось и предлагал тебе посмотреть (ссылка в сылке).
p.s. а спориш и чтото доказываеш ты совершенно зря, ведь у тебя не работает, а ты пытаешся доказать что у тебя правильно, и неправильно пишет тот человек у которого как раз работает. абсурд.
> Ты чё, меня за ламо считаешь или как?
ламо ты и есть. стиль разговора ламерский, а уж обиды при малейшем подозрении на то что чегото не знаеш очень показательны и очень по ламерски.
Digitman (2004-02-04 08:09:00) [18]так. устал я с тобой тут пререкаться попусту
разговор короткий - вперед к учебникам и в MSDN !
dr Tr0jan (2004-02-04 06:04:00) [19]2 Digitman ©:
> оч даже внимательно прочел ее.
Чёто не похоже!
> чего "туда" ? и что я подумал ?
Туда - это место, где выполняется код сервиса, а ты подусал что вышеупомянутая (проклятая) функция и есть код сервиса. Еще раз доказывает, что ты эту статью не читал.
> это не атрибуты, это формальные параметры
Все равно.
> важно чтобы в теле ф-ции был сформирован и возвращен один из предопределенных результатов, включая NO_ERROR
Спрашивается: зачем нужны эти параметры?
> ну так поставь Д6 Enterprise
Зачем? У меня и так Delphi 7 Enterprise стоит.
> тебя 300 кб кода сильно заботят ?
Очень заботят. Это тупость и тормознутость делать сервис без картинок (и прочих ненужных ресурсов) больше 150 кБ. Тот же svchost.exe весит 12,5 Кб.
> как же ты заглянул ?
Обыкновенно!
> я так понял, у тебя Д6 Персонэл установлен ?
Не так понял. См. тему топика ^: " Сервисы в Win2k [D7, Win2k, WinXP]".
> а если и заглянул - что увидел там ?
Увидел, что пустой (в смысле только стандартный код) компиленный сервис весит 402 Кб.
> открываешь хэлп и изучаешь применение ф-ций OpenSCManager, OpenService, ControlService .. там и находишь ответ на вопрос
Я же говорил, что открывал - нихера там нет - там не сказано как прописыать сервис в систему.
> это как ?)
А вот так! Тебе что, еще нужно рассказывать как приложения с помощью :( формы грохать?
> даже тааак !?
Вот так!
> ну что ж, с тебя ящик пива
Чует мое сердце, не заработаешь ты его!
> function ServiceProc(argc : DWORD;var argv : array of PChar): DWord;
begin
Result := NO_ERROR;
end;
Ты затупан! Мне, во-первых, нужна функция function ServiceInitialization(argc,argv,SpecificError): DWORD, а во-вторых, я и так заместо нее 0 прописывал. А сервис все равно не работает, а точнее запускается, а через 10 сек сам вырубается.
> хэлп Win32 Programmer's Reference штатно поставляется с Д6
Это знаю!
> ищи лучше
По установке и запуску сервиса, там ничего нет.
Digitman (2004-02-03 16:23:00) [20]function ServiceInitialization(argc : DWORD; var argv : array of PCharж; var SpecificError: DWORD): DWord;
begin
SpecificError := 0;
Result := NO_ERROR;
end;
/I>