Как я могу определить, что человек остановил службу Windows?
У меня есть несколько странный случай, чтобы иметь дело с...
- У меня есть служба Windows "A".
- "А" контролируется для событий в "В". "B" - это приложение, которое перезапустит "A", если "A" перестанет работать.
- Не следует перезапускать букву "А", если пользователь вручную выключает "А" из приложения "Службы" в Windows или из командной строки, используя для этого сетевую остановку. По сути, всякий раз, когда не-приложение (то есть человек) останавливает его, я не хочу, чтобы оно перезапускало "А".
Вот простой пример "B":
ServiceController controller = new ServiceController(someServiceName);
while (true)
{
controller.WaitForStatus(ServiceControllerStatus.Running);
controller.WaitForStatus(ServiceControllerStatus.Stopped);
controller.Start();
}
Поскольку пользователь будет вызывать остановку состояния службы так же, как это делает другое приложение, есть ли способ определить, кто на самом деле остановил эту конкретную службу Windows? Есть ли способ определить, остановил ли конкретный человек эту конкретную службу?