Проверьте, установлены ли службы с помощью C

Я пишу приложение C, которое создает службу Windows. Я хотел бы проверить, установлена ли служба, прежде чем пытаться вызвать функцию установки, но мне не удается найти, как это проверить.

Я написал код выше, чтобы попробовать:

DWORD InstallMyService()
{
    char strDir[1024 + 1];
    SC_HANDLE schSCManager;
    SC_HANDLE schService;
    LPCTSTR lpszBinaryPathName;

    if (GetCurrentDirectory(1024, strDir) == 0)
    {
        aff_error("GetCurrentDirectory");
        return FALSE;
    }
    strcat(strDir, "\\"MY_SERVICE_BIN_NAME);
    if ((schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS)) == NULL)
    {
        printf("Error OpenSCManager : %d\n", GetLastError());
        return FALSE;
    }
    lpszBinaryPathName = strDir;
    schService = CreateService(schSCManager, MY_SERVICE_NAME, MY_SERVICE_DESCRIPTOR,
                             SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL,
                             lpszBinaryPathName, NULL, NULL, NULL, NULL, NULL);
    if (schService == NULL)
    {
        printf("Error CreateService : %d\n", GetLastError());
        return FALSE;
    }
    CloseServiceHandle(schService);
    return TRUE;
}

Но этот код не определяет, существует ли сервис или нет. У кого-то есть идея, какую функцию вызывать? Я нашел много сообщений, говорящих об этом, но не на C, только на C # или VB.

Спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос