Остановить переход системы в режим ожидания
Вопрос
Как я могу остановить вход хост-машины standby
режим во время работы моего приложения?
Есть ли win32 api
позвонить, чтобы сделать это?
Решение
Существует два API, в зависимости от версии Windows.
ХР, 2000, 2003:
http://msdn.microsoft.com/en-us/library/aa373247(VS.85).aspx
Ответьте на PBT_APMQUERYSUSPEND.
Виста, 2008:
http://msdn.microsoft.com/en-us/library/aa373208(VS.85).aspx
Может быть много веских причин, по которым компьютер не может перейти в спящий режим.Например, просмотр видео, воспроизведение музыки, компиляция долго работающей сборки, загрузка больших файлов и т.д.
Другие советы
Эта статья http://www.codeguru.com/cpp/w-p/system/messagehandling/article.php/c6907 предоставляет демонстрацию того, как это сделать на C++ (хотя статья составлена так, как будто вы хотите сделать это на Java, и предоставляет оболочку Java).
Фактический код в zip-файле по адресу http://www.codeguru.com/dbfiles/get_file/standbydetectdemo_src.zip?id=6907&lbl=STANDBYDETECTDEMO_SRC_ZIP&ds=20040406 а часть C++ находится в com/ha/common/windows/standbydetector.
Надеюсь, это даст вам достаточно информации, чтобы начать.