Функция OpenSCManager
Declare Function OpenSCManager Lib "advapi32.dll" Alias "OpenSCManagerA" ( _
ByVal lpMachineName As String, _
ByVal lpDatabaseName As String, _
ByVal dwDesiredAccess As Long) As Long
OpenSCManager устанавливает связь с менеджером управления службами на заданном компьютере и открывает его базу данных.
Возвращаемое значение
В случае успеха, функция возвращает дескриптор базы данных менеджера управления службами. Использовать дескриптор может только тот процесс, который вызвал функцию OpenSCManager. Закрыть его можно при помощи функции CloseServiceHandle. В случае ошибки функция вернёт NULL. Для получения более подробной информации об ошибке используйте функцию GetLastError. Вот некоторые коды ошибок
ERROR_ACCESS_DENIED | Доступ с указанными правами запрещён.
|
ERROR_DATABASE_DOES_NOT_EXIST | Указанная база данных не существует.
|
ERROR_INVALID_PARAMETER | Не правильный параметр
|
Параметры
- lpMachineName
- Имя компьютера. Если этот параметр равен NULL или указывает на пустую строку (""), то используется менеджер управления службами на локальном компьютере
- lpDatabaseName
- Имя открываемой базы данных менеджера управления службами. Этот параметр должен быть равен SERVICES_ACTIVE_DATABASE. Если этот параметр равен NULL, то по умолчанию будет открыта база SERVICES_ACTIVE_DATABASE
- dwDesiredAccess
- Права доступа к менеджеру управления службами. Перед тем, как разрешить доступ с запрошенными правами, система проверяет права запросившего процесса и сверяет их со списком в менеджере управления службами. По умолчанию, при вызове этой функции установлено право SC_MANAGER_CONNECT
Пример
смотри пример ServicesStopPauseStart.zip
Смотри также
CloseServiceHandle, CreateService, EnumServicesStatus, LockServiceDatabase, OpenService, QueryServiceLockStatus
Категория
Службы