Programaticamente leia o valor "Desligue o disco rígido após" no Windows

3

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

Estou ciente do

powercfg -change disk-timeout-ac xx

e

powercfg -change disk-timeout-dc xx

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

    
por Nassbirne 10.12.2015 / 14:12

1 resposta

1

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 subchave User\PowerSchemes tem 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 de PowerSchemes são, bem, esquemas de energia. 381b4222-f694-41f0-9685-ff5bb260df2e , por exemplo, é Equilibrado (recomendado) .

Assubchavesdaschavesdoesquemadeenergiasãocategoriascomoaparecemnasopçõesavançadasdeenergia.EstessãodefinidosnasubchavePowerSettingsdePower.Porexemplo,0012ee47-9041-4b5d-9b77-535fba8b1442éDiscorígidocomovistonaimagemacima.Assubchavesdeaquelassãoasconfiguraçõesindividuais.6738e2c4-e8a5-4a42-b16a-e040e769756eisDesligueodiscorígidoapós.EssaschavestêmumasubchaveDefaultPowerSchemeValues,quetemumasubchaveparacadaplanodeenergiapadrão.EssaschavestêmumaentradaAcSettingIndexeDcSettingIndexquesãoexatamenteoquevocêpensa.Asunidadesusadasvariamdeconfiguraçãoparaconfiguração;esteusasegundos.Assim,vocêpodeverqueotempolimitededesligamentododiscorígidopadrãoparaoplanodeenergiaBalanceadaéde1200segundos(20minutos)quandoconectadoe600segundos(10minutos)combateria.

Agora,voltemosàchaveUser\PowerSchemes.Comoousuáriopodenuncateralteradoasconfigurações,nãohágarantiadequeachaveteráentradasdeconfiguraçãoACeDC,asubchavedeconfiguraçãoouatémesmoasubchavedecategoria.Seovalorquevocêestáprocurandonãoestiverlá,vocêprecisaráverificarovalorpadrãodoplanodeenergiaatualemPowerSettings\DefaultPowerSchemeValues.

Observeque,emboratodospossamleressaschavesevalores,nemmesmoosadministradorespodemescrever.IssoporqueasconfiguraçõesdeenergiadevemsergerenciadaspormeiodoPowerservice,queéexecutadocomoSYSTEM.

Osdesenvolvedoresdeaplicativoscompilados(C++)devemusarainterfacedocumentadaparagerenciamentodeenergia.Liguepara GetCurrentPowerPolicies , obtenha o user parte do POWER_POLICY estrutura e observe os SpindownTimeoutAc e SpindownTimeoutDc valores.

    
por 14.01.2016 / 17:04