Como posso vincular um atalho de teclado a diferentes planos / perfis de energia no Windows 7?

1

Por exemplo, os diferentes planos de energia que tenho disponíveis no meu Dell e6420 estão listados como:

Como posso vincular essas opções com um atalho de teclado, de modo que eu possa alternar entre elas a) ou b) percorrer os planos?

    
por jhstuckey 20.02.2013 / 00:33

1 resposta

1

Como mencionei na minha resposta aqui , você pode verificar os GUIDs para os vários planeje e crie atalhos separados (com atalhos de teclado) para Windows\System32\Powercfg.exe para ativar cada plano (preste atenção no campo Segmentar abaixo):

Noentanto,parafacilitarascoisas,paraquevocênãopreciseprocurarecopiarcomcuidado+colartodosessesGUIDs,prepareialgunsarquivosemloteparavocê.

Oprimeiro,PowerPlanAlter.bat,permitequevocêalternerapidamenteentretodososplanosdisponíveisemseusistemausandoapenasumnúmero.Rodá-losemumargumentoimprimiráalgoassim:

Usage:PowerPlanAlter[Number]1="Balanced" [GUID = 381b4222-f694-41f0-9685-ff5bb260df2e]
  2 = "High performance" [GUID = 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c]
  3 = "My Custom Plan 1 (Reduced fan speeds)" [GUID = 938ef152-e95f-4aed-acea-e1c8a0f4493f]
  4 = "My Custom Plan 1 (Increased fan speeds)" [GUID = 9d2a75cb-f035-4376-92db-36fa01e271d2]
  5 = "Power saver" [GUID = a1841308-3541-4fab-bc81-f71556f20b4a]

Current power plan = "Balanced" [GUID = 381b4222-f694-41f0-9685-ff5bb260df2e]

Você pode chamá-lo na linha de comando ou criar vários atalhos para ele, um por plano. Aqui está o código:

@echo off
set pcnt=0
setlocal enableextensions enabledelayedexpansion
for /f "skip=3 tokens=2* delims=:(" %%a in ('powercfg -l') do (
    set /a pcnt+=1
    set tmp=%%b
    if [!tmp:~-1!]==[^)] set tmp=!tmp:~,-1!
    if [!tmp:~-1!]==[*] set tmp=!tmp:~,-3!&& set cp=!pcnt!
    set pname_!pcnt!=!tmp!
    for /f %%c in ("%%a") do set pguid_!pcnt!=%%c
)
echo.
powercfg -s !pguid_%1! 2>NUL
if errorlevel 1 (
    echo Usage: %0 [Number]
    echo.
    for /l %%d in (1,1,!pcnt!) do echo   %%d = "!pname_%%d!" [GUID = !pguid_%%d!]
    echo.
    for /l %%e in (!cp!,1,!cp!) do echo Current power plan = "!pname_%%e!" [GUID = !pguid_%%e!]
) else (
    for /l %%f in (!cp!,1,!cp!) do echo Old power plan = "!pname_%%f!" [GUID = !pguid_%%f!]
    echo.
    echo New power plan = "!pname_%1!" [GUID = !pguid_%1!]
)

O segundo, PowerPlanCycle.bat , permitirá que você faça um ciclo / iterar rapidamente em todos os planos disponíveis em seu sistema. Nenhum argumento requerido; basta criar um atalho para ele e cada vez que você executá-lo, o próximo plano em linha será ativado (voltando ao primeiro após o último). Aqui está o código:

@echo off
set pcnt=0
setlocal enableextensions enabledelayedexpansion
for /f "skip=3 tokens=2* delims=:(" %%a in ('powercfg -l') do (
    set /a pcnt+=1
    set tmp=%%b
    if [!tmp:~-1!]==[^)] set tmp=!tmp:~,-1!
    if [!tmp:~-1!]==[*] set tmp=!tmp:~,-3!&& set cp=!pcnt!
    set pname_!pcnt!=!tmp!
    for /f %%c in ("%%a") do set pguid_!pcnt!=%%c
)
echo.
set /a np=!cp!%%!pcnt!+1
for /l %%d in (!cp!,1,!cp!) do echo Old power plan = "!pname_%%d!" [GUID = !pguid_%%d!]
echo.
for /l %%e in (!np!,1,!np!) do powercfg -s !pguid_%%e! && echo New power plan = "!pname_%%e!" [GUID = !pguid_%%e!]

Se você estiver chamando por um atalho e quiser ver a saída, basta adicionar um comando pause no final. Estes funcionam bem no Windows 7 x64, mas deixe-me saber se você tem um problema com eles.

(Ah, e caso você não esteja muito familiarizado com arquivos batch, apenas copie + cole o código no Bloco de Notas e salve como "PowerPlanAlter.bat" e "PowerPlanCycle.bat" respectivamente, com as aspas.)

    
por 20.02.2013 / 18:06