Leia programaticamente o valor "Desligar o disco rígido após" no Windows

Leia programaticamente o valor "Desligar o disco rígido após" no Windows

Estou procurando uma maneira de ler programaticamente a configuração atual do valor "Desligar o disco rígido após", localizado nas opções avançadas de energia do Windows 7 e posterior.

Estou ciente do

powercfg -change disk-timeout-ac xx

e

powercfg -change disk-timeout-dc xx

comandos para definir esse valor. No entanto, não parece haver um comando equivalente para ler o valor definido atualmente. Além disso, não consegui encontrar uma configuração de registro para isso.

Responder1

Como você está perguntando sobre o superusuário em vez do Stack Overflow, vou me concentrar na maneira programável (Registro) de fazer isso.

As configurações de energia estão todas acessíveis no Registro sob esta chave:

HKLM\CurrentControlSet\Control\Power

A User\PowerSchemessubchave possui uma entrada chamada ActivePowerSchemeque - como você pode imaginar - contém o ID do plano de energia atual. Todos os IDs relacionados ao gerenciamento de energia são GUIDs, mas minhas pesquisas rápidas mostram que os padrões são os mesmos em todas as máquinas. As subchaves PowerSchemessão, bem, esquemas de energia. 381b4222-f694-41f0-9685-ff5bb260df2e, por exemplo, éEquilibrado (recomendado).

opções de energia

As subchaves das chaves do esquema de energia são categorias conforme aparecem nas opções avançadas de energia. Eles são definidos na PowerSettingssubchave de Power. Por exemplo, 0012ee47-9041-4b5d-9b77-535fba8b1442éDisco rígidocomo visto na imagem acima. As subchaves deaquelessão as configurações individuais. 6738e2c4-e8a5-4a42-b16a-e040e769756eéDesligue o disco rígido depois. Essas chaves possuem uma DefaultPowerSchemeValuessubchave, que possui uma subchave para cada plano de energia padrão. Essas chaves têm AcSettingIndexuma DcSettingIndexentrada que é exatamente o que você pensa. As unidades utilizadas variam de configuração para configuração; este usa segundos. Portanto, você pode ver que o tempo limite padrão para desligar o disco rígido para o plano de energia balanceado é de 1200 segundos (20 minutos) quando conectado e 600 segundos (10 minutos) com bateria.

padrões de registro

Agora de volta à User\PowerSchemeschave. Como o usuário pode nunca ter alterado as configurações, não há garantia de que a chave terá entradas de configuração AC e DC, a subchave de configuração ou mesmo a subchave de categoria. Se o valor que você procura não estiver lá, você precisará verificar o valor padrão do plano de energia atual em PowerSettings\DefaultPowerSchemeValues.

Observe que embora todos possam ler essas chaves e valores, nem mesmo os administradores podem escrever. Isso ocorre porque as configurações de energia devem ser gerenciadas por meio do Powerserviço, que funciona como SYSTEM.


Os desenvolvedores de aplicativos compilados (C++) devem usar a interface documentada para gerenciamento de energia. ChamarGetCurrentPowerPolicies, pegue ouserparte dePOWER_POLICYestrutura e observe os valores SpindownTimeoutAce SpindownTimeoutDc.

informação relacionada