Mam aplikację w języku C # (2.0 działającą na wbudowanym systemie XP), która komunikuje się z „stróżem” zaimplementowanym jako usługa systemu Windows. Po uruchomieniu urządzenia ta usługa zwykle zajmuje trochę czasu. Chciałbym sprawdzić na podstawie kodu, czy usługa jest uruchomiona. Jak mogę to osiągnąć?
c#
windows-services
watchdog
edosoft
źródło
źródło
Odpowiedzi:
Myślę, że coś takiego działałoby:
Dodaj
System.ServiceProcess
do referencji do projektu (znajduje się na karcie .NET).Edycja: Istnieje również metoda,
sc.WaitforStatus()
która ma pożądany status i limit czasu, nigdy jej nie użyła, ale może pasować do twoich potrzeb.Edycja: Po uzyskaniu statusu, aby ponownie uzyskać status, musisz
sc.Refresh()
najpierw zadzwonić .Odwołanie: obiekt ServiceController w .NET.
źródło
Tutaj otrzymujesz wszystkie dostępne usługi i ich status na swoim komputerze lokalnym.
Możesz porównać swoją usługę z właściwością service.name wewnątrz pętli i uzyskać status swojej usługi. Aby uzyskać szczegółowe informacje, przejdź do http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx także http://msdn.microsoft.com/en-us/library/microsoft.windows.design .servicemanager (v = vs.90) .aspx
źródło