Поскольку вы спрашиваете о суперпользователе, а не о переполнении стека, я сосредоточусь на сценариях (реестре), способ сделать это.
Все настройки питания доступны в реестре под этим ключом:
HKLM\CurrentControlSet\Control\Power
В подразделе User\PowerSchemes
есть запись ActivePowerScheme
которая, как вы можете догадаться, содержит идентификатор текущего плана электропитания. Все идентификаторы, относящиеся к управлению питанием, являются GUID, но мои быстрые опросы показывают, что стандартные значения одинаковы на всех машинах. Подразделами PowerSchemes
являются, ну, схемы питания. 381b4222-f694-41f0-9685-ff5bb260df2e
сбалансирован (рекомендуется).
Подразделы ключей схемы электропитания являются категориями в том виде, в каком они отображаются в дополнительных параметрах электропитания. Они определены в подразделе PowerSettings
Power
. Например, 0012ee47-9041-4b5d-9b77-535fba8b1442
- это жесткий диск, как показано на изображении выше. Подразделами этих являются индивидуальные настройки. 6738e2c4-e8a5-4a42-b16a-e040e769756e
is Выключить жесткий диск после . Эти ключи имеют подраздел DefaultPowerSchemeValues
, который имеет подраздел для каждого стандартного плана электропитания. Эти ключи имеют AcSettingIndex
и запись DcSettingIndex
которые именно то, что вы думаете. Используемые единицы измерения варьируются от настройки к настройке; этот использует секунды. Итак, вы можете видеть, что время ожидания отключения питания жесткого диска по умолчанию для сбалансированной схемы питания составляет 1200 секунд (20 минут) при подключении и 600 секунд (10 минут) от батареи.
Теперь вернемся к ключу User\PowerSchemes
. Так как пользователь, возможно, никогда не изменял настройки, нет гарантии, что ключ будет иметь записи настройки как переменного, так и постоянного тока, подраздел настройки или даже подраздел категории. Если нужного вам значения нет, вам нужно проверить значение по умолчанию для текущего плана электропитания в PowerSettings\DefaultPowerSchemeValues
.
Обратите внимание, что хотя каждый может прочитать эти ключи и значения, даже администраторы не могут писать. Это связано с тем, что управление энергопотреблением должно осуществляться через службу Power
, которая работает как SYSTEM
.
Разработчики скомпилированных (C++) приложений должны использовать документированный интерфейс для управления питанием. Вызов GetCurrentPowerPolicies
, получить user
часть POWER_POLICY
структуры, и посмотреть значение SpindownTimeoutAc
и SpindownTimeoutDc