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