
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\PowerSchemes
subchave possui uma entrada chamada ActivePowerScheme
que - 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 PowerSchemes
são, bem, esquemas de energia. 381b4222-f694-41f0-9685-ff5bb260df2e
, por exemplo, éEquilibrado (recomendado).
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 PowerSettings
subchave 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 DefaultPowerSchemeValues
subchave, que possui uma subchave para cada plano de energia padrão. Essas chaves têm AcSettingIndex
uma DcSettingIndex
entrada 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.
Agora de volta à User\PowerSchemes
chave. 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 Power
serviço, que funciona como SYSTEM
.
Os desenvolvedores de aplicativos compilados (C++) devem usar a interface documentada para gerenciamento de energia. ChamarGetCurrentPowerPolicies
, pegue ouser
parte dePOWER_POLICY
estrutura e observe os valores SpindownTimeoutAc
e SpindownTimeoutDc
.