Пример #1
0
        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
        }