void m_idle_timer_Tick(object sender, EventArgs e)
 {
     m_idle_time_info = IdleTimeDetector.GetIdleTimeInfo();
     if (m_idle_time_info.IdleTime < SettingsManager.Instance.GetSnapshotSettings().GetFrequency())
     {
         if (m_idle_detected)
         {
             StartTimer();
         }
     }
 }
        void ScreenshotWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
           //Check if the size limit has been reached
            long compute_size = (m_total_size / 1000) / 1000;
            if (compute_size > SettingsManager.Instance.GetSnapshotSettings().GetSizeLimit())
           {
               StopTimer();
               m_quota_exceed = true;
               //SettingsManager.Instance.GetSnapshotSettings().ShowErrorMessage("Space quota reached.");
               string message = String.Format("Space limit of {0} MB reached.\nSnapshot Tool is stopped.\nExport and clean up the images.", SettingsManager.Instance.GetSnapshotSettings().GetSizeLimit());
               System.Windows.MessageBox.Show(message, "Snapshot Tool", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Information, System.Windows.MessageBoxResult.OK, System.Windows.MessageBoxOptions.ServiceNotification);
           }

            //Detect if the system is idle
            m_idle_time_info = IdleTimeDetector.GetIdleTimeInfo();
            var frequency = SettingsManager.Instance.GetSnapshotSettings().GetFrequency();
            if (m_idle_time_info.IdleTime >= frequency)
            {
                //btnPause.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent));
                if (!m_timer_running) return;
                m_idle_detected = true;
                StopTimer();
            }
            else
                m_idle_detected = false;
        }