私は対処するためにやや奇妙なケースを持っています...
- Windows サービス " A " があります。
- 「A」は「B」のイベントを監視します。「B」は、「A」が停止した場合に「A」を再起動するアプリケーションです。
- ユーザーが Windows のサービス アプリから手動で "A" をシャットダウンした場合、またはネット ストップを使用してコマンド プロンプトから "A" を再起動しないでください。基本的に、非アプリケーション (つまり人間) がそれを停止するたびに、「A」を再起動したくありません。
「B」の簡単な例を次に示します。
ServiceController controller = new ServiceController(someServiceName);
while (true)
{
controller.WaitForStatus(ServiceControllerStatus.Running);
controller.WaitForStatus(ServiceControllerStatus.Stopped);
controller.Start();
}
ユーザーは、別のアプリケーションと同じ方法でサービスのステータスを停止させるため、特定の Windows サービスを実際に停止したユーザーを検出する方法はありますか? 実際の人がその特定のサービスを停止したかどうかを検出する方法はありますか?