Пример #1
0
        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();
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
            }
        }
Пример #4
0
        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();
        }