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