サービスの状態を追跡するための簡単なコードがあります。しかし、私のコードでは、サービスが開始または停止したことを知ることができます。どのサービスが開始または停止したかを知りたい。
これが私のコードサンプルです。これは主な機能です:
public void TrackService()
{
string queryRunning = "SELECT * FROM __InstanceModificationEvent WITHIN 1 WHERE TargetInstance ISA \"Win32_Service\" AND TargetInstance.State=\"Running\"";
ManagementEventWatcher watcher = null;
watcher = new ManagementEventWatcher(queryRunning);
watcher.EventArrived += new EventArrivedEventHandler(ServiceStart);
watcher.Start();
}
これがイベント機能です。
private void ServiceStart(object sender, EventArrivedEventArgs e)
{
string msg = "Services has started.";
Console.WriteLine(msg);
}