Я знаю, что для перехода системы в спящий режим можно вызвать следующий API:
SetSuspendState (TRUE, FALSE, FALSE) ;
Но есть ли способ узнать, доступна ли «настоящая» гибернация для текущего пользователя Windows?
Вот что я имею в виду:
Если администратор вызывает:
powercfg.exe / hibernate off
API, указанный выше, переведет систему в спящий режим. Так как же узнать (из программы на C ++), что это произойдет вместо гибернации?
Я не уверен, существует ли групповая политика, которая может запретить пользователю переходить в спящий режим компьютера, подключенного к Active Directory?
Изменить Мне известен (датированный)
IsPwrHibernateAllowed
API. Я обнаружил, что это не работает: он по-прежнему возвращает тот же результат, даже если был вызванpowercfg.exe / hibernate off
. Я что-то не так делаю? Может кто-нибудь объяснить, почемуIsPwrHibernateAllowed
не работает для меня?