void idlechecktimer_Elapsed(object sender, ElapsedEventArgs e) { try { this.idlechecktimer.Stop(); idletimeinsecs = Win32Helper.GetIdleTimeInSecs(); if (this.IdleTimeChanged != null) { this.IdleTimeChanged(this, null); } if (idletimeinsecs + this.idlechecktimer.Interval / 1000 >= maxidleTimeInMins * 60) { if (this.BeforeIdleTimeReached != null) { this.BeforeIdleTimeReached(this, null); } } if (idletimeinsecs >= maxidleTimeInMins * 60) { if (this.IdleTimeReached != null) { this.IdleTimeReached(this, null); } } } finally { this.idlechecktimer.Start(); } }
private async Task <bool> WaitAndSuspend() { try { //MonitorOff = !SystemHelper.IsMonitorOn(); await Task.Delay(10 * 1000); var idletime = Win32Helper.GetIdleTimeInSecs(); if (idletime > 30) { SystemHelper.Suspend(); notifyIcon1.BalloonTipText = $"SystemSleep had put your system to sleep idletime:{idletime} MonitorOff:{MonitorOff}"; notifyIcon1.ShowBalloonTip(500); return(true); } else { notifyIcon1.BalloonTipText = $"Skipping sleep as is not off Monitoroff:{MonitorOff} idletime:{idletime}"; } } catch (Exception ex) { notifyIcon1.BalloonTipText = $"Exception {ex.ToString()}"; Trace.WriteLine(ex); notifyIcon1.ShowBalloonTip(500); } return(false); }
private async void SleepNow_Click(object sender, EventArgs e) { ScreenHelper.TurnOffScreen(this.Handle); await Task.Delay(2000); var idletime = Win32Helper.GetIdleTimeInSecs(); Trace.WriteLine($"SleepNow_Click idletime {idletime}"); if (idletime > 0) { SystemHelper.Suspend(); } }
private async void Idletimer_IdleTimeChanged(object sender, EventArgs e) { if (sleepIfMonitorOff.Checked) { MonitorOff = !SystemHelper.IsMonitorOn(); if (MonitorOff) { UpdateLabel2(); Idletimer_BeforeIdleTimeReached(sender, e); await WaitAndSuspend(); } } if (simulateActivity.Checked && DateTime.Now.Hour < simulateActivityUntilHours) { #if DEBUG var idletime = Win32Helper.GetIdleTimeInSecs(); if (idletime >= (defaultidletime / 2) * 60) { SendKeys.SendWait("^{ESC}"); } #endif } UpdateLabel2(); }