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

VB.NET Discussion :

Changer le type de démarrage d'un service windows


Sujet :

VB.NET

  1. #1
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut Changer le type de démarrage d'un service windows
    Bonjour,

    grace à l'objet servicecontroller, je peux via une appli vb.net démarrer un service. (servicecontroller.start())

    Par contre je n'arrive pas à changer le type de démarrage (Manuel, Automatique, désactivé...).

    Est ce que c'est possible, si oui comment ?

    Merci

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Le ServiceController gère un service déjà installé, et ne permet pas de modifier les propriétés du service au sein du SCM.

    Pour ce faire, il faut aller voir du coté de l'objet ServiceInstaller.

  3. #3
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    oui mais moi je veux modifier le type de demarrage d'un service existant (affichages des messages), pas d'un service que je crée.

    C'est pas possible ca ?

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    C'est très facile avec l'API du SCM (de mémoire, faire OpenScm, puis OpenService, puis SetServiceStartMode), ou avec le panneau de contrôle , mais je ne sais pas comment ces fonctions du SCM dont implémentées dans .Net, en dehors du ServiceInstaller.


    Je n'ai jamais essayé d'utiliser le ServiceInstaller pour modifier les propriétés a posteriori; ça marche peut être, faut tester.

    Sinon,tu as la resource d'utiliser les appels directs au SCM, de la façon dont je le mentionne supra.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour,
    je déterre un peu le sujet, mais il y'a quelque heure j'étais dans le même cas que toi Hulk...

    Après avoir longuement cherché, j'ai trouvé une solution alternative mais simple. En gros pour activer le démarrage Automatique d'un Service déjà existant je passe par le registre...

    Il suffit d'aller voir du coté de "HKEY_LOCAL_MACHINE\\System\\ControlSet001\\Services\\Nom du Service"

    En gros dans mon code ça donne ça :
    (c'est du C# mais adaptable à Vb .NET sans problème je pense...)
    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
     
     RegistryKey Nkey = Registry.LocalMachine;
                try
                {
                    RegistryKey valKey = Nkey.OpenSubKey("System\\ControlSet001\\Services\\MON_SERVICE", RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.RegistryRights.FullControl);
                    if (valKey == null)
                    {
                        return false;
                    }
                    else
                    {
     
                        valKey.SetValue("Start", Convert.ToInt32(2), RegistryValueKind.DWord);
                        valKey.Close();
                    }
                }
                catch (Exception ex) { 
                            return false;
                }
    Au niveau de la ligne "valKey.SetValue(...)" la valeur 2 correspond au démarrage Automatique...

    Pour les possibilités de démarrage :

    2 = Automatique
    3 = Manuel
    4 = Désactivé

    Si quelqu'un sait à quoi correspond le 1 & le 2, je suis preneur... :p


    Voilà, j'espère que sa servira à quelqu'un...

    PS : D'autre propriétés du service sont accessibles à cette endroit du regstre.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2017
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    je souhaite effectuer un réglage sur démarrage "automatique différé".

    il faut modifier la clé DelayedAutostart de 0 a 1:

    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\uvnc_service]
    "DelayedAutostart"=dword:00000001


    je suis tombé la dessus :

    Clé : HKLM \SYSTEM \CurrentControlSet \Services \Nom du Service
    Entrée : Start
    Système : NT, 2K
    Signification : Démarrage
    Type : REG_DWORD
    Indique le moment auquel le service doit s'exécuter. Les valeurs ci-dessous correspondent aux boutons d'option du groupe Type de démarrage dans l'icône Services du Panneau de configuration.
    0x00 Démarrage Chargé par le chargeur de noyau. Représente une partie de la pile du pilote du volume d'amorçage et doit par conséquent être chargé par le gestionnaire d'amorçage.
    0x01 Système Chargé par le sous-système des entrées/sorties. Représente un pilote à charger lors de l'initialisation du noyau.
    0x02 Automatique Chargé par le gestionnaire de contrôle des services. A charger ou exécuter automatiquement à chaque démarrage, quel que soit le type de service.
    0x03 Manuel Chargé par le gestionnaire de contrôle des services. Disponible quel que soit le type de service. Ne sera pas exécuté jusqu'à lancement par l'utilisateur (par exemple à partir de l'icône Périphériques du Panneau de configuration ou de la ligne de commande).
    0x04 Désactivé Chargé par le gestionnaire de contrôle des services. Peut être exécuté ou non par le système ou l'utilisateur.

Discussions similaires

  1. [Vb.NET] Changer le type de démarrage d'un service Windows
    Par Aspic dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/08/2009, 10h29
  2. Changer le mode d'ouverture d'un service Windows
    Par Anto03 dans le forum VB.NET
    Réponses: 2
    Dernier message: 29/05/2009, 09h15
  3. [ANT][Tomcat]Démarrage d'un service windows
    Par ellene dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 06/07/2006, 16h05
  4. Planifier le démarrage d'un service Window
    Par tscoops dans le forum Windows XP
    Réponses: 2
    Dernier message: 29/03/2005, 14h56
  5. Récupérer le type de démarrage d'un service
    Par Nathan dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 09/04/2004, 15h07

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