Bonjour à toutes et à tous :)
J'ai à nouveau besoin de votre aide et de vos conseils avisés.
Je cherche a creer un service a partir d'un executable exterieur à un programme, comme le ferait sc.exe, présent sur windows XP.
J'ai beau chercher, la plupart des exemples disponibles cree un service:
- soit codé directement dans le programme, le service n'est qu'un "morceau de code" qui tourne
- soit appliqué sur un executable choisi, comme dans l'exemple d'Arnotic, présent sur ce site.
j'ai essayé différents exemples, j'en suis arrivé finalement au code suivant, mais l'erreur est toujours la meme:
le service est bien crée, mais impossible de le lancer.
si on tente de le lancer depuis le gestionnaire de service windows, on rencontre une joyeuse messagebox qui nous dit:
"impossible de demarrer le service X sur Ordinateur Local
Erreur 1053: le service n'a pas répondu assez vite a la demande de lancement ou de controle"
int NewService(char* displayedname, char* name, char* path)
{
SC_HANDLE Service;
SC_HANDLE consoleSCManager;
consoleSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if(NULL == consoleSCManager) {
printf("erreur lors de l'ouverture du Service Manager\n");
return 1;
}
Service = CreateService(
consoleSCManager,
displayedname,
name,
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
path,
NULL, NULL, NULL, NULL, NULL);
if(Service == NULL) {
printf("Impossible de créer le service\n");
}
CloseServiceHandle(Service);
CloseServiceHandle(schSCManager);
return 0;
}
:(