예제 #1
0
        /// <summary>
        /// タイマー処理
        /// </summary>
        /// <param name="s"></param>
        /// <param name="e"></param>
        private void timer_Elapsed(object s, ElapsedEventArgs e)
        {
            try
            {
                _timer.Stop();

                //1分以内の設定について処理する
                var span = new TimeSpan(0, 1, 0);

                var dateNow   = DateTime.Now;
                var timeOfDay = dateNow.TimeOfDay;

                foreach (var time in TimerSetting)
                {
                    //無効または未来の設定であれば飛ばす
                    if (!time.Enabled || dateNow < time.ExecTime)
                    {
                        continue;
                    }

                    var start = time.ExecTime.TimeOfDay;
                    var end   = start.Add(span);

                    if (start <= timeOfDay && timeOfDay <= end)
                    {
                        switch (time.Power)
                        {
                        case PowerEnum.Off:
                            DisplaySleepHelper.SleepDisplay();
                            break;

                        case PowerEnum.On:
                            DisplaySleepHelper.WakeupDisplay();
                            break;

                        default:
                            throw new ArgumentOutOfRangeException();
                        }
                    }

                    //次の日の処理に回す
                    time.ExecTime = time.ExecTime.AddDays(1);
                }
            }
            finally
            {
                _timer.Start();
            }
        }
예제 #2
0
 /// <summary>
 /// ディスプレイ電源オフ
 /// </summary>
 /// <param name="s"></param>
 /// <param name="e"></param>
 private void toolStripMenuItem_DisplaySleep_Click(object s, EventArgs e)
 {
     DisplaySleepHelper.SleepDisplay();
 }