0

サービスの状態を追跡するための簡単なコードがあります。しかし、私のコードでは、サービスが開始または停止したことを知ることができます。どのサービスが開始または停止したかを知りたい。

これが私のコードサンプルです。これは主な機能です:

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);
    }
4

1 に答える 1

1

探していたらここ にたどり着きました。

private void ServiceStart(object sender, EventArrivedEventArgs e)
        {
            string msg = ((ManagementBaseObject)e.NewEvent["TargetInstance"])["DisplayName"];
        }

これは私が欲しいものです。(ManagementBaseObject)e.NewEvent["TargetInstance"]).

于 2012-12-05T12:10:19.763 に答える