static void DetectState() { string LocX = Cursor.Position.X.ToString(); string LocY = Cursor.Position.Y.ToString(); Thread.Sleep(1000); if (LocX == Cursor.Position.X.ToString() && LocY == Cursor.Position.Y.ToString()) { Step++; } else { if (Logged == true) { PerformanceCounter Counter = new PerformanceCounter(); Counter.CategoryName = "Processor"; Counter.CounterName = "% Processor Time"; Counter.InstanceName = "_Total"; Counter.NextValue(); Thread.Sleep(1000); MachineState MS = new MachineState(); MS.IsActive = true; MS.Timing = new ActivePassive(); MS.Timing.ToActive = DateTime.Now.ToString(); MS.CPU_Percentage = Counter.NextValue().ToString() + "%"; Logger l = new Logger(); l.WriteLog(MS, FilePath); Logged = false; Step = 0; } else { Step = 0; } } if (Step > WaitingSeconds && Logged == false) { PerformanceCounter Counter = new PerformanceCounter(); Counter.CategoryName = "Processor"; Counter.CounterName = "% Processor Time"; Counter.InstanceName = "_Total"; Counter.NextValue(); Thread.Sleep(1000); MachineState MS = new MachineState(); MS.IsActive = false; MS.Timing = new ActivePassive(); MS.Timing.ToPassive = DateTime.Now.ToString(); MS.CPU_Percentage = Counter.NextValue().ToString() + "%"; Logger l = new Logger(); l.WriteLog(MS, FilePath); Logged = true; Step = 0; } }