




В этой статье 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.
Надеюсь, это даст вам достаточно направления, чтобы начать работу.
В зависимости от версии Windows существует два API.
XP, 2000, 2003:
http://msdn.microsoft.com/en-us/library/aa373247(VS.85).aspx
Ответьте на PBT_APMQUERYSUSPEND.
Vista, 2008:
http://msdn.microsoft.com/en-us/library/aa373208(VS.85).aspx
Может быть много веских причин для предотвращения перехода компьютера в спящий режим. Например, просмотр видео, воспроизведение музыки, сборка длительной сборки, загрузка больших файлов и т. д.