![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как можно остановить службу на какое-то и потом ее запустить? [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() и всю необходимую ботву для работы этой ф-ции