2012-12-05 3 views
0

서비스 상태를 추적하는 간단한 코드가 있습니다. 하지만 제 코드에서는 서비스가 시작되거나 중단되었음을 알 수 있습니다. 어떤 서비스가 시작되었거나 중단되었는지 알고 싶습니다.이 __InstanceModificationEvent 이벤트를 발생시키는 서비스를 확인하는 방법은 무엇입니까?

다음은 내 코드 샘플입니다.

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

이 이벤트 FUNC입니다 : 이 주요 기능이다.

답변

1

검색 중에 here에서 찾았습니다.

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

이것은 내가 원하는 것입니다. (ManagementBaseObject)e.NewEvent["TargetInstance"]).

관련 문제