Vérification de l'état d'un service Windows en C#
Dans une application qui communique avec un service Windows, il est crucial de déterminer si le service est en cours d’exécution avant d’initier la communication. Voici comment y parvenir en C# :
-
Ajouter l'espace de noms System.ServiceProcess :
Inclure using System.ServiceProcess ; dans votre projet pour accéder à l'objet ServiceController nécessaire.
-
Créez une instance de ServiceController :
Instancier un objet ServiceController spécifiant le nom du service que vous souhaitez vérifier (par exemple, ServiceController sc = new ServiceController(SERVICENAME);).
-
Récupérer le service Status :
La propriété Status du ServiceController fournit l'état actuel du service. Accédez-y pour déterminer si le service est en cours d'exécution.
-
Interpréter la valeur Status :
La propriété Status peut renvoyer différentes valeurs, chacune correspondant à un état spécifique du service :
- ServiceControllerStatus.Running
- ServiceControllerStatus.Stopped
- ServiceControllerStatus.Paused
- ServiceC ontrollerStatus.StopPending
- ServiceControllerStatus.StartPending
- ServiceControllerStatus.StatusChanging
-
Actualiser le statut (facultatif) :
Si vous devez récupérer à nouveau le statut, appelez sc.Refresh() avant d'accéder à nouveau à la propriété Status.
Conseils :
- Le ServiceController fournit également une méthode WaitforStatus() qui permet d'attendre un statut spécifique et timeout.
- Vous pouvez personnaliser la gestion des erreurs pour différentes valeurs d'état si nécessaire.
- Reportez-vous à la documentation Microsoft pour des informations plus détaillées sur l'objet ServiceController.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!