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

C# Discussion :

[C#] demarrer dynamiquement un service windows par son nom


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 160
    Points : 92
    Points
    92
    Par défaut [C#] demarrer dynamiquement un service windows par son nom
    Bonjour,
    J'ai plusieurs services à demarrer dynamiquement
    j'ai la liste des noms sous forme de hashtable des services a demarrer
    la question est comment démarrer dynamiquement un services windows par son nom ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    System.ServiceProcess.ServiceBase[] ServicesToRun;	
     
    foreach (string name in Hasthab.Keys)
    {
    ServicesToRun[i] = new ?????????????
    }

  2. #2
    Futur Membre du Club
    Inscrit en
    Septembre 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Il faut que tu passe par un contrôleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    System.ServiceProcess.ServiceController srvController;
    srvController = new ServiceController("Mon service");
    if (srvController.Status == System.ServiceProcess.ServiceControllerStatus.Stopped) {
        srvController.Start();
    }

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 160
    Points : 92
    Points
    92
    Par défaut
    j'etais plutot parti sur la reflexion .NET
    car ce sont des sous services dans mon service principal


    merci quand meme

    enfin je teste encore pour le moment

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Avec la Réflection et Activator.CreateInstance :

  5. #5
    Membre actif Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Points : 272
    Points
    272
    Par défaut
    Je profite de ce sujet pour poser une question... Sous WINXP ( ptet sous d'autres aussi ), il y a la commande NET START qui permet de démarrer un service.
    En C(++) j'utilisais _execl("NET", "START SERVICE"); et ça fonctionnait ( je me trompes peut être dans la commande... mais je me souviens que ça marchait ). Comment puis-je exécuter le même genre de commande en C# ? J'ai essayé avec Diagnostics.Process mais j'imagine que ça ne marchera pas ( en fait ça ne marche pas ).

    Merci d'avance,
    DeusXL.

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 160
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par Morpheus
    Avec la Réflection et Activator.CreateInstance :
    yes ;-)

    merci

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 160
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par chnew
    Citation Envoyé par Morpheus
    Avec la Réflection et Activator.CreateInstance :
    yes ;-)

    merci
    en fait pas yes :-(

    la classe (quelle soit elle) n'est pas toujours dans la meme assembly.
    elle peut se trouver dans une autre assembly (Dll referencé)
    et la, quand je fais mon Gettype("mon nom"), il ne me trouve rien ...
    ce qui est normal...
    donc mon activator.createinstance ne fonctionne pas ...
    comment faire pour effectuer la recherche dans les assemblies referencés egalement ?
    y a t il une methode "native" comme en java ou faut balayer les assembly referencés ?

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 160
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par chnew
    Citation Envoyé par chnew
    Citation Envoyé par Morpheus
    Avec la Réflection et Activator.CreateInstance :
    yes ;-)

    merci
    en fait pas yes :-(

    la classe (quelle soit elle) n'est pas toujours dans la meme assembly.
    elle peut se trouver dans une autre assembly (Dll referencé)
    et la, quand je fais mon Gettype("mon nom"), il ne me trouve rien ...
    ce qui est normal...
    donc mon activator.createinstance ne fonctionne pas ...
    comment faire pour effectuer la recherche dans les assemblies referencés egalement ?
    y a t il une methode "native" comme en java ou faut balayer les assembly referencés ?
    c bon j'ai trouvé

    faut bouclé la dessus ..

    l'appelant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Assembly.GetCallingAssembly().GetExportedTypes())
    dans les references
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetCallingAssembly().GetReferencedAssemblies();
    editer par neguib pour

  9. #9
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    Essaie ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    p = new Process();
    p.StartInfo.FileName = "NET.EXE";
    p.StartInfo.Arguments = "Start "+nomService;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.RedirectStandardError = true;
    p.Start();

  10. #10
    Membre actif Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Points : 272
    Points
    272
    Par défaut
    Merci bilb0t En réalité j'ai sûrement fait une erreur quand j'ai testé ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel d'un Service Windows par SQL
    Par SBODev dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/12/2009, 11h10
  2. Appel d'un Service Windows par SQL
    Par SBODev dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 24/12/2009, 13h03
  3. Appeler un objet crée dynamiquement par son nom
    Par gomit85 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/05/2008, 17h11
  4. Recherche d'un objet 'window' par son nom
    Par herve91 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/02/2007, 16h54
  5. Réponses: 4
    Dernier message: 06/06/2004, 12h07

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