IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Propriété Description Tservice


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 423
    Par défaut Propriété Description Tservice
    Bonjour,

    Je cherche le moyen de noter une description dans la description d'un service que j'ai fait sous XE2, de manière à ce que lorsque l'on est dans la gestion des services de Windows ont puisse consulter cette information.

    Je ne trouve pas cette propriétés ni d'api permettant de le faire.

    Merci pour votre aide.

  2. #2
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    Bonjour,

    à ma connaissance il n'y en a pas, il faut le mettre manuellement dans la base de registre, après l'installation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    procedure TService1.ServiceAfterInstall(Sender: TService);
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create(KEY_READ or KEY_WRITE);
      try
        Reg.RootKey := HKEY_LOCAL_MACHINE;
        if Reg.OpenKey('\SYSTEM\CurrentControlSet\Services\' + Name, false) then
        begin
          Reg.WriteString('Description', 'Description de mon service.');
          Reg.CloseKey;
        end;
      finally
        Reg.Free;
      end;
    end;
    @++
    Dany

  3. #3
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    si j'en crois mon unité NTService, le nom du service est donné dans l'appel à CreateServiceA()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    function Install(Name,Caption,Command:string):boolean;
     var
      scm:THandle;
      srv:THandle;
     begin
      Result:=False;
      scm:=OpenSCManagerA(nil, nil, SC_MANAGER_ALL_ACCESS);
      if scm=0 then exit;
      srv:= CreateServiceA(
       scm,
       PChar(Name), PChar(Caption),
       SERVICE_ALL_ACCESS,
       SERVICE_INTERACTIVE_PROCESS or SERVICE_WIN32_OWN_PROCESS,
       SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,
       PChar(Command),
       nil, nil, nil, nil, nil
      );
      if srv<>0 then begin
       Result:=True;
       CloseServiceHandle(srv);
      end;
      CloseServiceHandle(scm);
     end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre éclairé
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 423
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    si j'en crois mon unité NTService, le nom du service est donné dans l'appel à CreateServiceA()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function Install(Name,Caption,Command:string):boolean;
     var
      scm:THandle;
      srv:THandle;
     begin
      Result:=False;
      scm:=OpenSCManagerA(nil, nil, SC_MANAGER_ALL_ACCESS);
      if scm=0 then exit;
      srv:= CreateServiceA(
    ...
    Bonjour Paul,

    Je ne comprends pas bien ta réponse, mais peut être que ma question n'était pas très claire.

    Il s'agit non pas d'installer un service, mais de pouvoir renseigner à un service que j'ai écris, l'entrée "Description" qui est visible lorsque tu ouvres la gestion des services de Windows.

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    Paul, n'est-ce pas DisplayName ?
    DisplayName identifie le service dans le gestionnaire de contrôle de services.
    C'est son Libellé sur la première colonne du "services.msc"
    CastorCharly souhaite la Deuxieme colonne

    Bonjour Maitre Castor ! !

    Citation Envoyé par castorcharly Voir le message
    Il s'agit non pas d'installer un service, mais de pouvoir renseigner à un service que j'ai écris, l'entrée "Description" qui est visible lorsque tu ouvres la gestion des services de Windows.
    Je pense que Paul, évoquait que l'on pouvait définir la valeur dès l'installation donc avant son lancement car il a du confondre DisplayName et la Description


    NTService ? C'est une unité à toi Paul ?

    Sinon remarque similaire, DisplayName correspond au Caption de Paul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CreateService(SvcMgr, PChar(Name), PChar(DisplayName),
            SERVICE_ALL_ACCESS,...
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SC_HANDLE WINAPI CreateService(
      _In_       SC_HANDLE hSCManager,
      _In_       LPCTSTR lpServiceName,
      _In_opt_   LPCTSTR lpDisplayName,
    Citation Envoyé par msdn
    hSCManager [in]

    A handle to the service control manager database. This handle is returned by the OpenSCManager function and must have the SC_MANAGER_CREATE_SERVICE access right. For more information, see Service Security and Access Rights.
    lpServiceName [in]

    The name of the service to install. The maximum string length is 256 characters. The service control manager database preserves the case of the characters, but service name comparisons are always case insensitive. Forward-slash (/) and backslash (\) are not valid service name characters.
    lpDisplayName [in, optional]

    The display name to be used by user interface programs to identify the service. This string has a maximum length of 256 characters. The name is case-preserved in the service control manager. Display name comparisons are always case-insensitive.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre éclairé
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 423
    Par défaut
    Le troll,

    Je parle de la description, pas du displayname,
    par exemple pour

    le service [PolicyAgent]
    le displayname est en FR [Agent de stratégie IPsec]
    et la description est [La sécurité du protocole Internet (IPSec) prend en charge l’authentification de l’homologue réseau, l’authentification de l’origine des données, ...]

    C'est cette description que je veux implémenter, pour mes services.

  7. #7
    Membre éclairé
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 423
    Par défaut
    Citation Envoyé par skywaukers Voir le message
    Bonjour,

    à ma connaissance il n'y en a pas, il faut le mettre manuellement dans la base de registre, après l'installation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    procedure TService1.ServiceAfterInstall(Sender: TService);
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create(KEY_READ or KEY_WRITE);
      try
        Reg.RootKey := HKEY_LOCAL_MACHINE;
        if Reg.OpenKey('\SYSTEM\CurrentControlSet\Services\' + Name, false) then
        begin
          Reg.WriteString('Description', 'Description de mon service.');
          Reg.CloseKey;
        end;
      finally
        Reg.Free;
      end;
    end;
    @++
    Dany
    Merci SkyWaukers,

    j'avais vu cette entrée en BdR mais j'aurais préféré trouver une API, de manière à mettre à jour lors de l'install.
    Je vais donc me reporter sur l'event AfterInstall du service pour placer cette description.

    C'est bizarre que cette propriété ne soit pas présente dans Le Tservice de Delphi, il me semble que dans Visual studio elle existe pour la classe ServiceInstaller...

Discussions similaires

  1. [AC-2003] Modifier la propriété "Description" d'une table en VBA ?
    Par Poulki dans le forum VBA Access
    Réponses: 4
    Dernier message: 16/07/2009, 17h13
  2. Réponses: 3
    Dernier message: 23/01/2008, 13h15
  3. Fenetre de description de propriété disparu
    Par mr_keyser dans le forum Visual Studio
    Réponses: 4
    Dernier message: 31/05/2007, 12h46
  4. Réponses: 2
    Dernier message: 29/05/2007, 22h48
  5. Propriété Description d'un module
    Par Junior_jef dans le forum Access
    Réponses: 3
    Dernier message: 28/04/2006, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo