Программно читать значение "Отключить жесткий диск после" в Windows
Я ищу способ программно прочитать текущую настройку значения "Отключить жесткий диск после", расположенную в дополнительных параметрах питания в Windows 7 и более поздних версиях.
Я знаю о
powercfg -change disk-timeout-ac xx
а также
powercfg -change disk-timeout-dc xx
Команды для установки этого значения. Однако, похоже, что нет эквивалентной команды для чтения текущего установленного значения. Кроме того, я не мог найти параметр реестра для этого.
1 ответ
Поскольку вы спрашиваете о суперпользователе, а не о переполнении стека, я сосредоточусь на сценариях (реестре).
Все настройки питания доступны в реестре под этим ключом:
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
Выключите жесткий диск после. Эти ключи имеют DefaultPowerSchemeValues
подраздел, который имеет подраздел для каждого стандартного плана электропитания. Эти ключи имеют AcSettingIndex
и DcSettingIndex
запись, которая именно то, что вы думаете. Используемые единицы измерения варьируются от настройки к настройке; этот использует секунды. Итак, вы можете видеть, что время ожидания отключения питания жесткого диска по умолчанию для сбалансированной схемы питания составляет 1200 секунд (20 минут) при подключении и 600 секунд (10 минут) от батареи.
Теперь вернемся к User\PowerSchemes
ключ. Так как пользователь, возможно, никогда не изменял настройки, нет гарантии, что ключ будет иметь записи настройки как переменного, так и постоянного тока, подраздел настройки или даже подраздел категории. Если искомого значения нет, вам нужно проверить значение по умолчанию для текущего плана электропитания обратно в PowerSettings\DefaultPowerSchemeValues
,
Обратите внимание, что хотя каждый может прочитать эти ключи и значения, даже администраторы не могут писать. Это потому, что настройки питания должны управляться через Power
сервис, который работает как SYSTEM
,
Разработчики скомпилированных (C++) приложений должны использовать документированный интерфейс для управления питанием. Вызов GetCurrentPowerPolicies
, получить user
часть POWER_POLICY
структура, и посмотрите на SpindownTimeoutAc
а также SpindownTimeoutDc
ценности.