Открытие базы данных SCManager

Многие операции требуют открытого дескриптора объекта SCManager. Следующий пример демонстрирует, как получить этот дескриптор.

Другие операции на базе данных Диспетчера управления службами (SCM) требуют других уровней доступа, а Вы должны запросить только минимальный требуемый доступ. Если требуется доступ  SC_MANAGER_ALL_ACCESS, функция OpenSCManager завершается ошибкой, если вызывающий процесс не имеет привилегий Администратора. Следующий пример показывает, как запросить полный доступ к базе данных ServicesActive на локальной машине.

#include <windows.h>
#include <stdio.h>

SC_HANDLE schSCManager;

// Открываем дескриптор базы данных SC Manager. 
 
schSCManager = OpenSCManager( 
    NULL,                    // локальная машина 
    NULL,                    // база данных ServicesActive 
    SC_MANAGER_ALL_ACCESS);  // полные права доступа 
 
if (NULL == schSCManager) 
    printf("OpenSCManager failed (%d)\n", GetLastError());
 

Назад в оглавление
На главную страницу

Hosted by uCoz