OVH Cloud OVH Cloud

[WD75] Zone description d'un service NT

6 réponses
Avatar
aprosper_fr
La fonction 'ChangeServiceConfigA' de ADVAPI32.DLL permet de modifier
les propriétés d'un service NT, créé par exemple par la fonction
'CreateServiceA'.

Problème : Ni la création ni la modification ne permettent
d'intervenir sur la description longue du service (celle qui
correspond à la structure SERVICE_DESCRIPTION.

Quelle fonction (et quelle syntaxe) doit-on utiliser pour agir sur
cette description ?

Je sais qu'on peut le faire via la base de registre mais il existe
certainement une API. J'ai regardé les fonctions que contient
ADVAPI32.DLL et je n'ai rien trouvé.

6 réponses

Avatar
Romain PETIT
Alain a utilisé son clavier pour écrire :

Problème : Ni la création ni la modification ne permettent
d'intervenir sur la description longue du service (celle qui
correspond à la structure SERVICE_DESCRIPTION.
Quelle fonction (et quelle syntaxe) doit-on utiliser pour agir sur
cette description ?



Le MSDN, toujours le MSDN...

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/changeserviceconfig2.asp

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
aprosper_fr
Romain,

je connais MSDN et crois-moi que j'ai lu tout ce qui concerne les
services des dizaines de fois !

Tu remarqueras que le nom utilisé, ici ChangeServiceConfig2 est
différent du nom de l'API à utilise dans Windev. Et c'est bien là mon
problème !

Par exemple, pour ChangeServiceConfig, on utilise
ChangeServiceConfigA.
Pour CreateService, on utilise CreateServiceA.

MAIS, pour ChangeServiceConfig2, je voudrais bien savoir ce qu'on
utilise et c'est bien là l'objet de ma question.

Quelle fonction et quelle syntaxe faut-il utiliser ?

A+, Alain

Romain PETIT wrote in message news:...
Alain a utilisé son clavier pour écrire :

> Problème : Ni la création ni la modification ne permettent
> d'intervenir sur la description longue du service (celle qui
> correspond à la structure SERVICE_DESCRIPTION.
> Quelle fonction (et quelle syntaxe) doit-on utiliser pour agir sur
> cette description ?

Le MSDN, toujours le MSDN...

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/changeserviceconfig2.asp

A+


Avatar
Romain PETIT
Alain a présenté l'énoncé suivant :

Quelle fonction et quelle syntaxe faut-il utiliser ?



Unicode: Implemented as Unicode and ANSI versions
-> normalement tu devrais trouver le point d'entrée avec
ChangeServiceConfig2A (A=ANSI).

Pour la synthaxe, je ne peux pas faire meiux que paraphraser le MSDN...

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
aprosper_fr
Roaim,

je m'avoue vaincu ! ChangeServiceConfig2A est effectivement la bonne
fonction.

Toutefois, je ne comprends pas trop car quand je demande un aperçu
rapide sur la DLL, je ne vois pas cette fonction dans la liste des
fonctions supportées.
Ceci dit, je fait ça sur un poste NT car je n'ai pas l'aperçu rapide
sous XP Home.
La version de la DLL n'est pas la même sous ces deux OS. Je me pose
d'ailleurs la question de savoir si tout ça va fonctionner sous NT4
workstation et je vais donc faire des tests dans ce sens.

Merci et A+ pour une autre question !


Romain PETIT wrote in message news:...
Alain a présenté l'énoncé suivant :

> Quelle fonction et quelle syntaxe faut-il utiliser ?

Unicode: Implemented as Unicode and ANSI versions
-> normalement tu devrais trouver le point d'entrée avec
ChangeServiceConfig2A (A=ANSI).

Pour la synthaxe, je ne peux pas faire meiux que paraphraser le MSDN...


Avatar
Romain PETIT
Alain avait soumis l'idée :

La version de la DLL n'est pas la même sous ces deux OS. Je me pose
d'ailleurs la question de savoir si tout ça va fonctionner sous NT4
workstation et je vais donc faire des tests dans ce sens.



Normalement non...
C'est écrit dans le MSDN (cf le lien donné) :

Client: Requires Windows XP or Windows 2000 Professional.
Server: Requires Windows Server 2003 or Windows 2000 Server.

NT n'étant pas dans la liste, tu ne pourras pas utiliser cette fonction
avec cet OS.
Il faudra donc utiliser l'ancienne fonction pour NT :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/changeserviceconfig.asp

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
aprosper_fr
Oui, la fonction n'existe que dans la dll XP et pas dans celle de NT.

Il faut donc utiliser ChangeServiceConfigA pour toutes les propriétés
du service, à part la description.

Ensuite, sous XP ou 2000 on peut utiliser ChangeServiceConfig2A mais
sous NT, il faut passser par la base de registre pour ajouter la
sous-clef Description :
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices[Nom du service]



Romain PETIT wrote in message news:...
Alain avait soumis l'idée :

> La version de la DLL n'est pas la même sous ces deux OS. Je me pose
> d'ailleurs la question de savoir si tout ça va fonctionner sous NT4
> workstation et je vais donc faire des tests dans ce sens.

Normalement non...
C'est écrit dans le MSDN (cf le lien donné) :

Client: Requires Windows XP or Windows 2000 Professional.
Server: Requires Windows Server 2003 or Windows 2000 Server.

NT n'étant pas dans la liste, tu ne pourras pas utiliser cette fonction
avec cet OS.
Il faudra donc utiliser l'ancienne fonction pour NT :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/changeserviceconfig.asp

A+