Как определить спящий режим?

Рейтинг: 0Ответов: 1Опубликовано: 14.03.2011

У меня есть программа, которая каждый час выполняет какое-то действие (VS-2010 > Visual Basic). 1 час отсчитывается с помощью таймера (System.Windows.Forms.Timer) в 1 секунду... Так вот, если программа работает и компьютер переходит в спящий режим, то при возобновлении его работы сразу выполняется это действие (которое должно выполнится только через 1 час).

Подскажите мне, пожалуйста, как мне определить, ушёл ли компьютер в спящий режим?

Честно говоря, я вообще не понимаю, почему так происходит. Ведь компьютер вообще с виду совсем выключен. BIOS-часы?

P.S. Это сообщество не перестаёт меня радовать..

Ответы

▲ 4

Лучше по таймеру не увеличивать счётчик, а проверять время последнего срабатывания нужного события. Если время срабатывания отличается от текущего на час или больше, обновляем время срабатывания текущим временем и запускаем операцию.