Bonjour,
Je souhaite depuis une application windows, récupérer le chemin d'un service, l'arrêter pour remplacer l'exécutable, puis le relancer. Tout ceci dans le cadre d'une mise à jour automatique d'un service.
Je récupère le service de la manière suivante:
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 String path; System.Management.ManagementClass mservices = new System.Management.ManagementClass("Win32_Service"); foreach (ManagementObject ob in mservices.GetInstances()) { if (ob.GetPropertyValue("Name").ToString() == "MonService") { MessageBox.Show(ob.GetPropertyValue("PathName").ToString()); servicemgmt("StopService"); //arrêt du service path = ob.GetPropertyValue("PathName").ToString(); } }
Mais je recontre le problème suivant:
Quand j'affiche dans la MessageBox le chemin récupéré j'obtiens bien un chemin correct du type
Cependant quand je stocke cette info dans la variable path, la chaîne devient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part d:\progs\exe\monservice.exe
Du coup ça va devenir plutôt galère à nettoyer comme chaîne pour obtenir un chemin valide afin de manipuler ce fichier (suppression, réécriture)
Code : Sélectionner tout - Visualiser dans une fenêtre à part "\"d:\\dev\\PopcornExchange\\PopcornExchange\\exe\\ExchangeService.exe\""
Une explication ? Merci
Partager