BOOL ControlService(SC_HANDLE HandleService, DWORD ModeDeControle, LPSERVICE_STATUS Statut);
Le mode de contrôle ModeDAcces est le plus souvent SERVICE_STOP_PENDING pour arrêter le service.
Le statut du service est renseigné dans Statut.
#include <windows.h>
#include <winbase.h>
SC_HANDLE HandleGestionnaire;
SC_HANDLE HandleService;
SERVICE_STATUS Statut;
Handle=OpenSCManager(NULL, NULL, GENERIC_EXECUTE);
if (!Handle)
{
...
}
...
HandleService=OpenService(HandleGestionnaire, "MonService", SERVICE_STOP);
if (!HandleService)
{
...
}
memset(&Statut, 0, sizeof(SERVICE_STATUS));
if (!ControlService(HandleService, SERVICE_STOP_PENDING, &Statut))
{
...
}
...
CloseServiceHandle(HandleService);
CloseServiceHandle(HandleGestionnaire);
Bien s'assurer que le gestionnaire de services a été correctement ouvert.
Bien s'assurer que le service a été correctement ouvert.