Есть две функции для остановки и запуска служб соответственно Код (Text): StopService proc SvcName:DWORD LOCAL schSCManager:SC_HANDLE LOCAL schService:SC_HANDLE LOCAL ssp:SERVICE_STATUS invoke OpenSCManager,0,0,SC_MANAGER_ALL_ACCESS ; Get a handle to the SCM database .if eax!=0 mov schSCManager,eax invoke OpenService,schSCManager,SvcName,SERVICE_ALL_ACCESS ; Get a handle to the service .if mov schService,eax invoke ControlService,schService,SERVICE_CONTROL_STOP,addr ssp ; Stop the service invoke CloseServiceHandle,schService .endif invoke CloseServiceHandle,schSCManager .endif return 0 StopService endp StartSvc proc SvcName:DWORD LOCAL schSCManager:SC_HANDLE LOCAL schService:SC_HANDLE invoke OpenSCManager,0,0,SC_MANAGER_ALL_ACCESS ; Get a handle to the SCM database .if eax!=0 mov schSCManager,eax invoke OpenService,schSCManager,SvcName,SERVICE_ALL_ACCESS ; Get a handle to the service .if mov schService,eax invoke StartService,schService,0,0 ; Start the service invoke CloseServiceHandle,schService .endif invoke CloseServiceHandle,schSCManager .endif return 0 StartSvc endp При попытке запуска/остановки стандартных служб иногда получается, иногда нет. Не могу понять почему. Чего-то не хватает? Какие имена у стандартных служб Windows (то что указывается вторым параметром в OpenService)? Как их узнать? Это названия ключей в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services ?
>> Какие имена у стандартных служб Windows (то что указывается вторым параметром в OpenService)? Как их узнать? Это названия ключей в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services ? Копайте в сторону EnumServicesStatusEx или же вручную через реестр смотрите.
Листинг вроде правильный. Какой код ошибки? Посмотри примеры работы с сервисами из книги Побегайло "Системное программирование": http://slil.ru/26534407