Example #1
0
        private void InitStatistics()
        {
            FirstActivity = new DateTime(0);

            RecordingStarted = DateTime.Now;
            Recording = new ActiveTime();
            Statistics = new Statistics(Recording);
            CurrentStatistics = Statistics;

            ApplicationUsage = new Dictionary<string, Statistics>();

            AddApplications();

            lastPoint = WindowHelper.GetCursorPos();
        }
Example #2
0
        private void AppendTotals(Statistics s, string path)
        {
            StreamWriter w;
            if (File.Exists(path))
            {
                w = new StreamWriter(path, true);
            }
            else
            {
                w = new StreamWriter(path);
                w.WriteLine("Date;FirstActivity;LastActivity;ActiveTime;MouseKeyboardRatio;Keystrokes;KeystrokesPerMinute;LeftClicks;MiddleClicks;RightClicks;DoubleClicks;MouseDistance;WheelDistance;ClicksPerMinute;");
            }
            w.Write("{0:yyyy-MM-dd};", RecordingStarted);
            w.Write("{0:HH:mm:ss};", FirstActivity);
            w.Write("{0:HH:mm:ss};", LastActivity);
            w.Write("{0};", s.Activity.TimeActive.ToShortString());
            w.Write("{0:0.0};", s.MouseKeyboardRatio);
            w.Write("{0};", s.KeyboardStatistics.KeyStrokes);
            w.Write("{0:0};", s.KeyboardStatistics.KeyStrokesPerMinute);
            w.Write("{0:0};", s.MouseStatistics.LeftMouseClicks);
            w.Write("{0:0};", s.MouseStatistics.MiddleMouseClicks);
            w.Write("{0:0};", s.MouseStatistics.RightMouseClicks);
            w.Write("{0:0};", s.MouseStatistics.MouseDoubleClicks);
            w.Write("{0:0.0};", s.MouseStatistics.MouseDistance);
            w.Write("{0:0};", s.MouseStatistics.MouseWheelDistance);
            w.Write("{0:0};", s.MouseStatistics.MouseClicksPerMinute);
            w.WriteLine();

            w.Close();
        }
Example #3
0
        private string CreateReport(Statistics s)
        {
            var sb = new StringBuilder();
            if (s == Statistics)
            {
                sb.Append(Report);
                sb.AppendLine();
                sb.Append(CreateApplicationReport());
                sb.AppendLine();
            }

            sb.Append(s.Report());
            return sb.ToString();
        }
Example #4
0
        public void SaveReport(Statistics s, string prefix)
        {
            if (!String.IsNullOrEmpty(prefix))
            {
                if (!Directory.Exists(prefix))
                {
                    Directory.CreateDirectory(prefix);
                }
                prefix += "/";
            }
            string path;
            switch (Settings.ReportInterval)
            {
                case ReportInterval.Hourly:
                    path = String.Format("{0}Report_{1:yyyy-MM-dd_HHmm}.txt", prefix, RecordingStarted);
                    break;
                default:
                    path = String.Format("{0}Report_{1:yyyy-MM-dd}.txt", prefix, RecordingStarted);
                    break;
            }

            path = FindUniqueName(path);
            var w = new StreamWriter(path);
            w.Write(CreateReport(s));
            w.Close();

            if (Settings.DisplayDate)
            {
                string txt = String.Format("{0:yyyy-MM-dd}", RecordingStarted);

                s.MouseStatistics.ClickMap.DrawDate(txt);
                s.MouseStatistics.DoubleClickMap.DrawDate(txt);
                s.MouseStatistics.TraceMap.DrawDate(txt);
                s.MouseStatistics.DragTraceMap.DrawDate(txt);
            }

            string imgPath = String.Format("{0}ClickMap_{1:yyyy-MM-dd}.png", prefix, RecordingStarted);
            SaveBitmap(s.MouseStatistics.ClickMap.Source, FindUniqueName(imgPath));

            imgPath = String.Format("{0}DoubleClickMap_{1:yyyy-MM-dd}.png", prefix, RecordingStarted);
            SaveBitmap(s.MouseStatistics.DoubleClickMap.Source, FindUniqueName(imgPath));

            imgPath = String.Format("{0}TraceMap_{1:yyyy-MM-dd}.png", prefix, RecordingStarted);
            SaveBitmap(s.MouseStatistics.TraceMap.Source, FindUniqueName(imgPath));

            imgPath = String.Format("{0}DragTraceMap_{1:yyyy-MM-dd}.png", prefix, RecordingStarted);
            SaveBitmap(s.MouseStatistics.DragTraceMap.Source, FindUniqueName(imgPath));

            string totalsPath = String.Format("{0}Totals.csv", prefix);
            AppendTotals(s, totalsPath);
        }