public void Watch() { #region Loading saved state and configure analyzer //todo: Configuration using LDAP //load previous state deviceList = BuildDeviceList(); var heartBeater = new HeartBeater(5 * 60, analyzer); TimerCallback timerCallback = heartBeater.SendHeartBeat; heartBeatingTimer = new Timer(timerCallback, null, 0, heartBeater.heartBeatInterval * 1000); #endregion #region setting up event watcher to receive device change notifications var eventWatcher = new ManagementEventWatcher { // vista bug: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=835398&SiteID=1 //Query = new WqlEventQuery("Win32_DeviceChangeEvent"); Query = new WqlEventQuery("Win32_SystemConfigurationChangeEvent") }; eventWatcher.EventArrived += DeviceChangeEventHandler; eventWatcher.Start(); #endregion while (isActive) { Thread.Sleep(10000); } heartBeatingTimer.Dispose(); eventWatcher.Stop(); //save state }
public void Watch() { #region Loading saved state and configure analyzer //todo: Configuration using LDAP //load previous state deviceList = BuildDeviceList(); var heartBeater = new HeartBeater(5*60, analyzer); TimerCallback timerCallback = heartBeater.SendHeartBeat; heartBeatingTimer = new Timer(timerCallback, null, 0, heartBeater.heartBeatInterval*1000); #endregion #region setting up event watcher to receive device change notifications var eventWatcher = new ManagementEventWatcher { // vista bug: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=835398&SiteID=1 //Query = new WqlEventQuery("Win32_DeviceChangeEvent"); Query = new WqlEventQuery("Win32_SystemConfigurationChangeEvent") }; eventWatcher.EventArrived += DeviceChangeEventHandler; eventWatcher.Start(); #endregion while (isActive) Thread.Sleep(10000); heartBeatingTimer.Dispose(); eventWatcher.Stop(); //save state }