Ich habe eine Anwendung in C # (2.0 läuft unter XP Embedded), die mit einem 'Watchdog' kommuniziert, der als Windows-Dienst implementiert ist. Wenn das Gerät gestartet wird, dauert es normalerweise einige Zeit, bis dieser Dienst gestartet wird. Ich möchte anhand meines Codes überprüfen, ob der Dienst ausgeführt wird. Wie kann ich das erreichen?
c#
windows-services
watchdog
edosoft
quelle
quelle
Antworten:
Ich denke so etwas würde funktionieren:
Fügen Sie
System.ServiceProcess
Ihren Projektreferenzen hinzu (auf der Registerkarte .NET).Bearbeiten: Es gibt auch eine Methode
sc.WaitforStatus()
, die einen gewünschten Status und eine Zeitüberschreitung annimmt, diese nie verwendet hat, aber möglicherweise Ihren Anforderungen entspricht.Bearbeiten: Sobald Sie den Status erhalten haben, müssen Sie
sc.Refresh()
zuerst anrufen, um den Status erneut zu erhalten .Referenz: ServiceController- Objekt in .NET.
quelle
Hier erhalten Sie alle verfügbaren Dienste und deren Status auf Ihrem lokalen Computer.
Sie können Ihren Dienst mit der Eigenschaft service.name innerhalb der Schleife vergleichen und erhalten den Status Ihres Dienstes. Weitere Informationen finden Sie unter http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx sowie unter http://msdn.microsoft.com/en-us/library/microsoft.windows.design .servicemanager (v = vs.90) .aspx
quelle