Например, различные схемы электропитания, которые у меня есть на моем Dell e6420, перечислены как:
Как я могу связать эти параметры с сочетанием клавиш, чтобы я мог а) переключаться между ними или б) перебирать планы?
Например, различные схемы электропитания, которые у меня есть на моем Dell e6420, перечислены как:
Как я могу связать эти параметры с сочетанием клавиш, чтобы я мог а) переключаться между ними или б) перебирать планы?
Как я уже говорил в моем ответе здесь, вы можете проверить GUIDs для различных планов и создать отдельные ярлыки (с помощью быстрых клавиш) в Windows\System32\Powercfg.exe
активировать каждый план (обратите внимание на поле Target ниже):
Однако, чтобы упростить задачу, чтобы вам не приходилось искать и аккуратно копировать + вставлять все эти GUID, я подготовил для вас несколько пакетных файлов.
Первый, PowerPlanAlter.bat, позволит вам быстро переключаться между всеми доступными планами в вашей системе, используя только номер. Запуск без аргумента выведет что-то вроде этого:
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]
Вы можете вызвать его из командной строки или создать для него несколько ярлыков, по одному на план. Вот код:
@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!]
)
Второй, PowerPlanCycle.bat, позволит вам быстро переключаться между всеми доступными планами в вашей системе. Никаких аргументов не требуется; просто создайте для него ярлык, и каждый раз, когда вы его запускаете, будет активирован следующий план в строке (возврат к первому после последнего). Вот код:
@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!]
Если вы вызываете их с помощью ярлыка и хотите увидеть результат, просто добавьте команду pause
в конце. Они хорошо работают на Windows 7 x64, но дайте мне знать, если у вас есть проблемы с ними.
(О, и на всякий случай, если вы не слишком знакомы с пакетными файлами, просто скопируйте + вставьте код в Блокнот и сохраните как "PowerPlanAlter.bat" и "PowerPlanCycle.bat" соответственно, с кавычками.)