Maison >développement back-end >C++ >Comment puis-je vérifier l'état d'un service Windows en C# ?

Comment puis-je vérifier l'état d'un service Windows en C# ?

DDD
DDDoriginal
2024-12-31 22:08:11373parcourir

How Can I Check the Status of a Windows Service in C#?

Vérification de l'état du service Windows en C#

Dans une application C#, vous devrez peut-être vérifier si un service Windows particulier est en cours d'exécution, surtout si il joue un rôle crucial dans la fonctionnalité de votre application. Voici comment y parvenir :

Utilisation de System.ServiceProcess

Pour travailler avec les services Windows, vous pouvez utiliser l'espace de noms System.ServiceProcess. Ajoutez-le aux références de votre projet sous l'onglet .NET.

using System.ServiceProcess;

ServiceController : un pont vers l'état du service

La classe ServiceController sert de pont entre votre code et le service Windows. Pour créer une instance, transmettez le nom du service qui vous intéresse.

ServiceController sc = new ServiceController(SERVICENAME);

Détermination de l'état du service

La propriété Status de l'objet ServiceController fournit le état actuel du service. Vous pouvez utiliser une instruction switch pour gérer différents statuts :

switch (sc.Status)
{
    case ServiceControllerStatus.Running:
        return "Running";
    case ServiceControllerStatus.Stopped:
        return "Stopped";
    case ServiceControllerStatus.Paused:
        return "Paused";
    case ServiceControllerStatus.StopPending:
        return "Stopping";
    case ServiceControllerStatus.StartPending:
        return "Starting";
    default:
        return "Status Changing";
}

Conseils :

  • Utilisez sc.Refresh() pour récupérer le dernier statut avant chaque check.
  • La méthode sc.WaitforStatus() peut attendre qu'un état spécifique se produise dans un délai d'attente période.
  • Référez-vous à la documentation Microsoft pour plus d'informations sur ServiceController : https://docs.microsoft.com/en-us/dotnet/api/system.serviceprocess.servicecontroller?view=netframework-4.8

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