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

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

Регистрация сервиса


Страницы:   1 2 3

Чапаев ©   (2005-10-31 16:32:00) 

При регистрации сервиса с помощью командной строки MySvc.exe /install сервис создаётся без описания и как это описание добавить, я не знаю. Если сервис регистрировать с помощью sc.exe, то можно добавить и описание. НО! При этом почему-то сервис регистрируется так, что он якобы не может быть остановлен или поставлен на паузу.

Люди добрые, поможите кто чем может. ;-)


Игорь Шевченко   (2005-11-02 11:43:00) [1]

Чапаев ©   (02.11.05 10:43) [42]

А код в студию не судьба ?


Чапаев   (2005-11-02 10:43:00) [2]

Это снова я... Не помешаю?

Попробовал я создавать/настраивать сервис с помощью CreateService()/ChangeServiceConfig(). Всё равно сервис получается NON_STOPPABLE|NON_PAUSABLE|IGNORES_SHUTDOWN. Те же результаты при использовании примера из MSDN. Что не так??


wp2   (2005-11-01 21:18:00) [3]


> > wp2   (31.10.05 21:29) [28]
>
> Это ты к чему?

Это я к тому, как можно зарегистрировать процесс програмным путём


Игорь Шевченко   (2005-11-01 15:02:00) [4]

Да собственно, в [23] все сказано, к чему повторяться.

Все функции работы с SCM вызывают отправку запроса процессу SCM по коммуникационному каналу, а дальнейшие действия SCM выполняет сам, со своими правами, со своим маркером доступа, и т.д. Подумай сам, к чему такие сложности, если все действия можно выполнить простым редактированием реестра (по крайней мере, в advapi32.dll это могло бы быть сделано).


Baltikla-26   (2005-11-01 14:49:00) [5]


> Посуди сам, зачем напрягать программистов, заставлять их
> разрабатывать API, документировать их, если все задачи можно
> решить простым редактированием реестра, как советуешь ты.
>


Ну зачем же так сурово.
Я лишь предложил один из возможных вариантов. Не более.


> Однако MS настоятельно рекомендует пользоваться API вместо
> редактирования реестра


Разве рекомендации накладывают какие-то ограничения?
Мы вольны использоватьлюбые инструменты и возможности на свой страх и риск. Тут уж каждый выбирает, какой вариант ему подойдет больше.


Игорь Шевченко   (2005-11-01 14:45:00) [6]

Baltikla-26   (01.11.05 14:07) [36]


> Чтобы дать готовое средство для работы с сервисами программистам.


Да. Например, для изменения описания сервиса служит готовое средство ChangeServiceConfig2.


> Разница в том, что поле комментария никак не влияет на работу
> сервиса, и используется только в SCM.


Собственно, большинство параметров сервиса используется только в SCM. Однако MS настоятельно рекомендует пользоваться API вместо редактирования реестра. Посуди сам, зачем напрягать программистов, заставлять их разрабатывать API, документировать их, если все задачи можно решить простым редактированием реестра, как советуешь ты.


Baltikla-26   (2005-11-01 14:09:00) [7]


> Нет, я разницы не вижу. Реестр один и тот же, API один и
> тот же, я же говорю, что вся информация о сервисах хранится
> в реестре и только там.


Разница в том, что поле комментария никак не влияет на работу сервиса, и используется только в SCM.


Baltikla-26   (2005-11-01 14:07:00) [8]


> Вопрос - зачем MS сделал Service Manager API ?


Чтобы дать готовое средство для работы с сервисами программистам.

А вопрос как-то связан с темой топика?


Игорь Шевченко   (2005-11-01 14:05:00) [9]

Baltikla-26   (01.11.05 13:59) [34]


> Мы ведь говорим не о всех настройках сервиса, а лишь об
> изменении комментария к нему.
> А это ведь большая разница. Верно?


Нет, я разницы не вижу. Реестр один и тот же, API один и тот же, я же говорю, что вся информация о сервисах хранится в реестре и только там.
Вопрос - зачем MS сделал Service Manager API ?


Baltikla-26   (2005-11-01 13:59:00) [10]

Игорь Шевченко ©   (01.11.05 13:38) [33]
Ну хорошо, ответь мне на один простой вопрос: все настройки сервисов можно задать в реестре, собственно, больше они нигде не запоминаются. Зачем Microsoft придумала Service Manager API, если все так просто делается через реестр ?


Мы ведь говорим не о всех настройках сервиса, а лишь об изменении комментария к нему.
А это ведь большая разница. Верно?


Игорь Шевченко   (2005-11-01 13:38:00) [11]

Baltikla-26   (01.11.05 13:29) [32]

Ну хорошо, ответь мне на один простой вопрос: все настройки сервисов можно задать в реестре, собственно, больше они нигде не запоминаются. Зачем Microsoft придумала Service Manager API, если все так просто делается через реестр ?

Только подумай сначала, прежде чем отвечать.


Baltikla-26   (2005-11-01 13:29:00) [12]

> Набережных С. ©   (31.10.05 21:25) [27]

> Вообще-то и у объекта "служба",и у объекта "SCM", и у объекта
> "ключ"  есть собственные дескрипторы защиты, и они могут
> быть изменены независимо друг от друга.


Согласен, тут я неправ, и признаю.

>Leonid Troyanovsky ©   (01.11.05 09:49) [30]

После неаргументированных [4], [6] RTFM выглядит именно оскорблением.
О чем в [7] было сказано ясно и понятно.

В [8] пошли опять оскорбления, и опять без аргументов.

В [30]:

Более того, я даже не стал тыкать пальцем в явную ошибку,

Позвольте узнать, какую?
Если про наименование ключа, то ниже было написано, что он вычисляется тривиально.
Так что ошибки там нет.

а также рассуждать о порочности редактирования реестра для
конфигурации сервиса.


Кто сказал Вам такую чушь?

Ну, а остальное вызвано не с неверностью к.л. идей,
а проявлением агрессивного невежества их проводников.


Когда некоторые люди, нацепив голубые штаны, начинают вещать, не аргументируя свою позицию, и плевать на все другие аргументы, чего-либо другого, кроме ответных плевков, трудно ожидать.

Однако, следует заметить, что Александру вполне удалось донести
до читателей, почему надо пользоваться именно этими функциями.
Проблема не только в правах доступа, но и в обычном разделении
доступа для читателей и писателей, что, при использовании
рекомендуемого API для конфигурации сервисов возложено на систему.


Прекрасная статья, но когда она рекомендуется вкупе с оскорблениями(RTFM - это оскорбление, потому что не несет в себе, кроме элементов демагогиии, ничего более).

PS.
Заметьте, что аргументов неприемлимостиподхода с редактированием  реестра здесь никто так и не услышал.


Leonid Troyanovsky   (2005-11-01 09:59:00) [13]


> Baltikla-26   (31.10.05 18:56) [15]
> Можно я сразу не соглашусь с автором из ссылки в [4], а
> именно - вот с этим -
> SCM загружает сразу всю конфигурационную базу данных в память
> при старте системы, поэтому любые изменения в реестре не
> вступят в силу до перезагрузки системы, а для изменения
> конфигурации служб следует пользоваться специальными функциями,
>  которые мы рассмотрим в следующем разделе. Сейчас же мы



Замечания автору можно высказать на http://rsdn.ru/?forum/?group=winapi
Он там часто бывает, и, думаю, не останется равнодушным к
конструктивной критике.

Однако, следует заметить, что Александру вполне удалось донести
до читателей, почему надо пользоваться именно этими функциями.
Проблема не только в правах доступа, но и в обычном разделении
доступа для читателей и писателей, что, при использовании
рекомендуемого API для конфигурации сервисов возложено на систему.

--
Regards, LVT.


Leonid Troyanovsky   (2005-11-01 09:49:00) [14]


> Baltikla-26   (31.10.05 20:10) [26]


> Вопрос ведь не в том, как делать лучше.
> г. Трояновский утверждает, что это способ вооще RTFM, LMD
> и т.д., что это в корне неверно.

Начнем с того, что я заметил, как лучше.
Более того, я даже не стал тыкать пальцем в явную ошибку,
а также рассуждать о порочности редактирования реестра для
конфигурации сервиса.

Во-вторых, с каких это пор RTFM стало неким ругательством?
Это, всего лишь, призыв почитать упомянутые материалы.

Ну, а остальное вызвано не с неверностью к.л. идей,
а проявлением агрессивного невежества их проводников.

--
Regards, LVT.


Набережных С.   (2005-10-31 21:41:00) [15]


> wp2   (31.10.05 21:29) [28]

Это ты к чему?


wp2   (2005-10-31 21:29:00) [16]

procedure CreateNTServiceEx(ExecutablePath, ServiceName: String);//Installing Services
var hSCMgr: SC_HANDLE;
begin
   hSCMgr := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE);
   if hSCMgr <> 0 then
   begin
       CreateService(hSCMgr, PChar(ServiceName), PChar(ServiceName),
       STANDARD_RIGHTS_REQUIRED, SERVICE_WIN32_OWN_PROCESS,
       SERVICE_AUTO_START, SERVICE_ERROR_NORMAL,
       PChar(ExecutablePath), nil, nil, nil, nil, nil);
       CloseServiceHandle(hSCMgr)
   end
end;

procedure DeleteNTService(ServiceName: string);//Uninstalling Services
var hServiceToDelete, hSCMgr: SC_HANDLE;
begin
   hSCMgr := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE);
   if hSCMgr <> 0 then
   begin
       hServiceToDelete := OpenService(hSCMgr, PChar(ServiceName), SERVICE_ALL_ACCESS);
       DeleteService(hServiceToDelete);
       CloseServiceHandle(hSCMgr)
   end
end;


Набережных С.   (2005-10-31 21:25:00) [17]


> Baltikla-26   (31.10.05 20:04) [25]


> Они одинаковы, поэтому не имеет значения, как изменять реестр.

Вообще-то и у объекта "служба",и у объекта "SCM", и у объекта "ключ"  есть собственные дескрипторы защиты, и они могут быть изменены независимо друг от друга. А сам SCM работает от имени системы. Нет, ее, конечно, тоже можно удалить из списка доступа, вот только это никак не повлияет, имхо.


Baltikla-26   (2005-10-31 20:10:00) [18]

>kami ©   (31.10.05 19:59) [23]

Вопрос ведь не в том, как делать лучше.
г. Трояновский утверждает, что это способ вооще RTFM, LMD и т.д., что это в корне неверно.

Я, со своей стороны, хочу заметить, что г. Трояновский написал свои оскорбления не подумав прежде, поэтому и жду от него опровержения.

Еще хочу заметить в сторону г. Трояновского, что если нет каких-либо весомых аргументов, то не стоит писать менторским тоном, провозглашая неверные истины. Как раз про такие вещи и говорят - LMD.


Baltikla-26   (2005-10-31 20:04:00) [19]


> А вот прямых прав на запись в реестр...


Они одинаковы, поэтому не имеет значения, как изменять реестр.


kami   (2005-10-31 20:01:00) [20]


> (и не важно, вручную, или RegEdit-ом)

Читать : (и не важно, программно или "ручками" RegEdit-ом)


Страницы:   1 2 3

Наверх

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