Eu tenho um aplicativo em C # (2.0 em execução no XP incorporado) que está se comunicando com um 'cão de guarda' implementado como um Serviço do Windows. Quando o dispositivo é inicializado, esse serviço normalmente leva algum tempo para iniciar. Gostaria de verificar, no meu código, se o serviço está sendo executado. Como posso fazer isso?
c#
windows-services
watchdog
edosoft
fonte
fonte
Respostas:
Eu acho que algo assim funcionaria:
Adicione
System.ServiceProcess
às referências do seu projeto (está na guia .NET).Editar: também existe um método
sc.WaitforStatus()
que leva o status desejado e o tempo limite, nunca o usou, mas pode atender às suas necessidades.Editar: depois de obter o status, para obter o status novamente, você precisará ligar
sc.Refresh()
primeiro.Referência: objeto ServiceController no .NET.
fonte
Aqui você obtém todos os serviços disponíveis e seu status na máquina local.
Você pode comparar seu serviço com a propriedade service.name dentro do loop e obter o status do seu serviço. Para obter detalhes, consulte o http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx também http://msdn.microsoft.com/en-us/library/microsoft.windows.design .servicemanager (v = vs.90) .aspx
fonte