Возможно, это копия C #: как активировать систему, которая была выключена? (хотя это C #).
Один из способов сделать это в Windows - создать таймер с помощью CreateWaitableTimer()
, установить время с помощью SetWaitableTimer()
, а затем выполнить WaitForSingleObject()
. Ваш код будет приостановлен, и вы можете перевести компьютер в режим ожидания (возможно, также в спящий режим, но не в выключенном состоянии). Когда таймер будет достигнут, компьютер возобновит работу, и ваша программа тоже.
См. здесь для полного примера на C. В примере показано, как рассчитать разницу во времени для таймера и как выполнить ожидание в потоке (если вы пишете графическое приложение).
Я должен добавить, что вы также можете запланировать запуск компьютера с помощью планировщика задач Windows («Разбудить компьютер для запуска этой задачи»). Это возможно также работает, когда компьютер выключен. В некоторых компьютерах также есть возможность установить время пробуждения.
В Linux вы можете настроить компьютер на включение, записав в специальный файл:
echo 2006-02-09 23:05:00 > /proc/acpi/alarm
Обратите внимание, что я не проверял все это, и это сильно зависит от аппаратного обеспечения (материнской платы), но какой-то пробуждение должно быть доступно на всех современных ПК.
Смотри также: http://en.wikipedia.org/wiki/Real-time_clock_alarm,
и вот программа, которая утверждает, что делает это на окнах: http://www.dennisbabkin.com/wosb/