Declare Function EnumServicesStatus Lib "advapi32.dll" Alias "EnumServicesStatusA" ( _
ByVal hSCManager As Long, _
ByVal dwServiceType As Long, _
ByVal dwServiceState As Long, _
lpServices As Any, _
ByVal cbBufSize As Long, _
pcbBytesNeeded As Long, _
lpServicesReturned As Long, _
lpResumeHandle As Long) As Long
EnumServicesStatus перечисляет службы в заданной базе данных менеджера управления службами с получением информации об имени и состоянии каждой службы.
В случае успеха функция возвращает ненулевое значение. В случае ошибки функция возвращает 0. Для получения более подробной информации об ошибке используйте функцию GetLastError. Вот некоторые коды ошибок
| ERROR_ACCESS_DENIED | Указанный описатель не имеет права доступа |
| ERROR_INVALID_HANDLE | Указанный описатель не существует |
| ERROR_INVALID_PARAMETER | Неправильный параметр |
| SERVICE_DRIVER | Перечисляет службы типа SERVICE_KERNEL_DRIVER и SERVICE_FILE_SYSTEM_DRIVER |
| SERVICE_WIN32 | Перечисляет службы типа SERVICE_WIN32_OWN_PROCESS и SERVICE_WIN32_SHARE_PROCESS |
| SERVICE_ACTIVE | Перечисляет службы следующих состояний: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING, SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING и SERVICE_PAUSED. |
| SERVICE_INACTIVE | Перечисляет службы в состоянии SERVICE_STOPPED. |
| SERVICE_STATE_ALL | Комбинирует все следующие состояния: SERVICE_ACTIVE и SERVICE_INACTIVE |
Смотри пример ServicesStopPauseStart.zip
EnumDependentServices, EnumServicesStatusEx, OpenSCManager