CreateService
Prototypes
SC_HANDLE CreateService(SC_HANDLE HandleGestionnaire, LPCSTR NomService, LPCSTR LibelleService, DWORD ModeAcces, DWORD TypeService, DWORD ModeDemarrage, DWORD ModeErreur, LPCSTR Commande, LPCSTR Groupe, LPDWORD Etiquette, LPCSTR Dependences, LPCSTR Utilisateur, LPCSTR MotDePasse);
Description
Référence le nouveau service de nom NomService ayant les caractéristiques suivantes :
- Le gestionnnaire de services est identifié par le handle HandleGestionnaire.
- Le libellé du service est donné par LibelleService.
- Le mode de démarrage du service est donné par ModeDemarrage.
- La commande lançant le programme du service est donnée par Commande.
Exemple
#include <windows.h>
#include <winbase.h>
SC_HANDLE HandleServiceManager;
SC_HANDLE HandleService;
SERVICE_DESCRIPTION Description;
char Commande[256];
...
HandleServiceManager=OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE);
if (!HandleServiceManager)
HandleService=CreateService(HandleServiceManager, "MonService", "Libellé du service", (DWORD)(STANDARD_RIGHTS_REQUIRED|SERVICE_CHANGE_CONFIG), SERVICE_WIN32_OWN_PROCESS, SERVICE_DISABLED, SERVICE_ERROR_IGNORE, Commande, NULL, NULL, NULL, NULL, NULL);
if (!HandleService)
Description.lpDescription="Mon commentaire";
if (!ChangeServiceConfig2(HandleService, SERVICE_CONFIG_DESCRIPTION, &Description))
...
if (!DeleteService(HandleService))
CloseServiceHandle(HandleService);
CloseServiceHandle(HandleServiceManager);
...
Avertissement
Le résultat est Nul en cas d'erreur.
Voir aussi
ChangeServiceConfig2 pour changer les caractéristiques du service. DeleteService pour déréférencer un service.