Maison >développement back-end >C++ >Comment puis-je vérifier si un service Windows s'exécute en utilisant C# ?

Comment puis-je vérifier si un service Windows s'exécute en utilisant C# ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-01 07:34:11656parcourir

How Can I Check if a Windows Service is Running Using C#?

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# :

  1. Ajouter l'espace de noms System.ServiceProcess :
    Inclure using System.ServiceProcess ; dans votre projet pour accéder à l'objet ServiceController nécessaire.
  2. 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);).
  3. 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.
  4. 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
  5. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn