Tengo una aplicación en C # (2.0 que se ejecuta en XP incorporado) que se está comunicando con un 'watchdog' que se implementa como un Servicio de Windows. Cuando se inicia el dispositivo, este servicio suele tardar un tiempo en iniciarse. Me gustaría verificar, desde mi código, si el servicio se está ejecutando. ¿Cómo puedo lograr esto?
c#
windows-services
watchdog
edosoft
fuente
fuente
Respuestas:
Supongo que algo como esto funcionaría:
Agregue
System.ServiceProcess
a sus referencias de proyecto (está en la pestaña .NET).Editar: También hay un método
sc.WaitforStatus()
que toma un estado deseado y un tiempo de espera, nunca lo usó, pero puede satisfacer sus necesidades.Editar: una vez que obtenga el estado, para obtener el estado nuevamente deberá llamar
sc.Refresh()
primero.Referencia: objeto ServiceController en .NET.
fuente
Aquí obtendrá todos los servicios disponibles y su estado en su máquina local.
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 y también http://msdn.microsoft.com/en-us/library/microsoft.windows.design .servicemanager (v = vs.90) .aspx
fuente