Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сервисы в Win2k [D7, Win2k, WinXP]


Страницы:   1 2

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>


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо