I wonder if there is any possible way to get or create an event for a status changed of a Windows Service.
I know that the ServiceController class does not have the event, but it has the status. Is there any way that I can listen to an event?
I wonder if there is any possible way to get or create an event for a status changed of a Windows Service.
I know that the ServiceController class does not have the event, but it has the status. Is there any way that I can listen to an event?
HackSlash
On
Using NotifyServiceStatusChange requires admin rights.
The service controller does have a ServiceController.WaitForStatus which could be set to listen for changes and create events. It's ugly but it doesn't require admin, so it may be useful in some scenarios.
Copyright © 2021 Jogjafile Inc.
This is exactly what the
NotifyServiceStatusChangefunction is intended for. The docs say that it:I'm not sure if there's an equivalent event wrapped in managed code, but this one is easy enough to get at using P/Invoke.
However, note that this function is only available in Windows Vista and later. If you need to target earlier versions, you can find a solution in one of the answers to this question.