Windowsサービスのステータス変更のイベントを取得または作成する方法はあるのでしょうか。
ServiceController
クラスにイベントがないことは知っていますが、ステータスはあります。イベントを聞く方法はありますか?
Windowsサービスのステータス変更のイベントを取得または作成する方法はあるのでしょうか。
ServiceController
クラスにイベントがないことは知っていますが、ステータスはあります。イベントを聞く方法はありますか?
これはまさにNotifyServiceStatusChange
関数が意図していることです。ドキュメントによると、次のようになっています。
指定されたサービスが作成または削除されたとき、またはそのステータスが変更されたときに、アプリケーションが通知を受信できるようにします。
マネージコードでラップされた同等のイベントがあるかどうかはわかりませんが、これはP/Invokeを使用するのに十分簡単です。
ただし、この機能はWindowsVista以降でのみ利用可能であることに注意してください。以前のバージョンをターゲットにする必要がある場合は、この質問に対する回答の1つで解決策を見つけることができます。