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

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

Как можно остановить службу на какое-то и потом ее запустить? [D6, Win2k, WinXP]


menart ©   (2004-08-19 16:31:00) 

subj?


Rocket   (2004-09-23 21:50:00) [1]

Ну что, никто не знает?


Rocket   (2004-09-21 20:56:00) [2]

Спасибо за ответ.
С net stop remoteregistry получилось, но мне надо включать/выключать эту службу на удалённых машинах. Да и потом охота сделать без посторонних процессов.

Делаю вот так:

   mansch:=OpenSCManager('Имя машины',
                         nil,
                         SC_MANAGER_ALL_ACCESS);

   remreg_sch:=OpenService(mansch,
                           'RemoteRegistry',
                           SERVICE_ALL_ACCESS);

   QueryServiceStatus(remreg_sch,
                      remreg_st);

   if remreg_st.dwCurrentState<>SERVICE_RUNNING then
   begin
     StartService(remreg_sch,1,servname);    // работает
     {получаем нужные данные}
     ControlService(remreg_sch               // < а вот этот ControlService не вырубает службу, а надо бы...
                    SERVICE_CONTROL_STOP,
                    remreg_st);
   end
   else
     {получаем нужные данные};


После этого делаю GetLastError и его значение, как я уже сказал, ERROR_INVALID_SERVICE_CONTROL, что означает, или такой команды вообще нет, или она к этой службе неприменима.

Помогите, please. Может ошибка в коде? Должно же по идее работать...


Gastello   (2004-09-20 23:00:00) [3]

Пишешь батник (программно или как) на старт и на запуск.
по таймеру или как хочешь запускаешь.

или прямо команду через shellexecute...

net stop/net start

Или я че-то не так понял?


Rocket   (2004-09-20 20:20:00) [4]

Откопал ветку наконец...

Проблема с остановкой (запуск работает) сервиса RemoteRegistry - не получается.
Устанавливаю SERVICE_ALL_ACCESS, шлю SERVICE_CONTROL_STOP, а
GetLastError говорит, что ERROR_INVALID_SERVICE_CONTROL.
Но ведь вручную-то через "Администрирование" её можно остановить...


menart   (2004-08-19 17:41:00) [5]

нашел http://delphiworld.narod.ru/base/nt_services_control.html


Digitman   (2004-08-19 16:42:00) [6]

см. ф-цию ControlService() и всю необходимую ботву для работы этой ф-ции


Наверх

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