Какие API или инструменты я могу использовать, чтобы узнать о возможностях системы и выбрать наиболее подходящий для перевода ПК в режим сна, гибернации или выключения?
Спасибо за любые указатели.





Посмотрите на SystemInformation.PowerStatus, затем вы можете вызвать Application.SetSuspendState, чтобы перевести компьютер в режим сна или гибернации, например:
Application.SetSuspendState(PowerState.Hibernate, true, true);
Полная подпись метода: Application.SetSuspendState ([PowerState.Hibernate | PowerState.Suspend], bool force, bool disableWakeEvent)
в зависимости от потребностей приложения я бы рекомендовал внимательно рассмотреть истинные, истинные параметры. отправка true для параметра 'force' может вызвать возобновление работы некоторых приложений или драйверов, поскольку им не будет отправлен запрос приостановки. если у вас возникли проблемы с пробуждением, попробуйте переключить true, true на false, true или false, false
Примечание: это находится в пространстве имен System.Windows.Forms, поэтому, если вы используете приложение WPF, вам нужно добавить ссылку на System.Windows.Forms DLL и вызвать ее с помощью System.Windows.Forms.Application.SetSuspendState (PowerState. Приостановить, правда, правда)
Вы можете использовать API:
Declare Function SetSuspendState Lib "PowrProf" (ByVal Hibernate As Integer, ByVal ForceCritical As Integer, ByVal DisableWakeEvent As Integer) As Integer
SetSuspendState(0, 0, 0) 'Sleep without forcing and ?no? wake events
SetSuspendState(1, 0, 0) 'Hibernate without forcing and ?no? wake events
Установите для Hibernate значение 1 (True) для Hibernate или 0 (False) для Sleep.
См. API здесь.
См. msdn.microsoft.com/en-us/library/… для получения полной информации.