Saltar al contenido

¿Cómo puedo verificar si se está ejecutando un servicio de Windows?

Hola, encontramos la solución a tu interrogante, continúa leyendo y la hallarás un poco más abajo.

Solución:

Supongo que algo como esto funcionaría:

Agregar System.ServiceProcess a las referencias de su proyecto (está en la pestaña .NET).

using System.ServiceProcess;

ServiceController sc = new ServiceController(SERVICENAME);

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";

Editar: También hay un método. sc.WaitforStatus() que toma un estado deseado y un tiempo de espera, nunca lo usó pero puede adaptarse a sus necesidades.

Editar: una vez que obtenga el estado, para obtener el estado nuevamente, deberá llamar sc.Refresh() primero.

Referencia: objeto ServiceController en .NET.

Aquí obtiene todos los servicios disponibles y su estado en su máquina local.

ServiceController[] services = ServiceController.GetServices();
foreach(ServiceController service in services)

    Console.WriteLine(service.ServiceName+"=="+ service.Status);

Puede comparar su servicio con la propiedad service.name dentro del bucle y obtener el estado de su servicio. Para obtener más información, visite http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx también http://msdn.microsoft.com/en-us/library/microsoft.windows.design .servicemanager(v=vs.90).aspx

Nos encantaría que puedieras comunicar esta crónica si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *