Установка службы

Программа конфигурации службы использует функцию CreateService, чтобы установить службу в базу данных Диспетчера управления службами (SCM). Следующий пример показывает, как установить службу. Определенный приложением дескриптор schSCManager должен иметь доступ SC_MANAGER_CREATE_SERVICE объекта SCManager. Пример того, как сделать это, см. статью Открытие базы данных SCManager.

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

BOOL CreateSampleService() 
{ 
    TCHAR szPath[MAX_PATH]; 
    
    if( !GetModuleFileName( NULL, szPath, MAX_PATH ) )
    {
        printf("GetModuleFileName failed (%d)\n", GetLastError()); 
        return FALSE;
    }
 
    schService = CreateService( 
        schSCManager,              // база данных SCManager 
        TEXT("Sample_Srv"),        // имя службы 
        lpszDisplayName,           // экранное имя службы 
        SERVICE_ALL_ACCESS,        // желательный доступ 
        SERVICE_WIN32_OWN_PROCESS, // тип службы 
        SERVICE_DEMAND_START,      // тип запуска 
        SERVICE_ERROR_NORMAL,      // тип управления ошибками 
        szPath,                    // путь к двоичному коду службы 
        NULL,                      // не загружать порядок групп 
        NULL,                      // идентификатор признака не установлен 
        NULL,                      // зависимости от других служб нет 
        NULL,                      // учетная запись LocalSystem 
        NULL);                     // пароля нет 
 
    if (schService == NULL) 
    {
        printf("CreateService failed (%d)\n", GetLastError()); 
        return FALSE;
    }
    else
    {
        CloseServiceHandle(schService); 
        return TRUE;
    }
}

 

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

Hosted by uCoz