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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
d:\progs\exe\monservice.exe
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:\\dev\\PopcornExchange\\PopcornExchange\\exe\\ExchangeService.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)
Une explication ? Merci