Изменения Powercfg из строки cmd не работают

Итак, я пытаюсь получить файл bat вместе с настройками питания, которые я хочу применить. Но я столкнулся с проблемой. По какой-то причине кнопка питания и действия по закрытию крышки не меняются. Вот соответствующий код из летучей мыши:

set pf=powercfg
set av=setacvalueindex
set pm=8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

rem lid close
%pf% /%av% %pm%    4f971e89-eebd-4455-a8de-9e59040e7347 5ca83367-6e45-459f-a27b-476b1d01c936 003
rem power button
%pf% /%av% %pm%    4f971e89-eebd-4455-a8de-9e59040e7347 7648efa3-dd9c-4e3e-b566-50f929386280 003
rem sleep button                                                        
%pf% /%av% %pm%    4f971e89-eebd-4455-a8de-9e59040e7347 96996bc0-ad50-47ec-923b-6f41874dd9eb 003

%pf% -setactive %pm%
pause    

И немного соответствующего вывода powercfg -query:

Subgroup GUID: 4f971e89-eebd-4455-a8de-9e59040e7347  (Power buttons and lid)
 GUID Alias: SUB_BUTTONS
  Power Setting GUID: 5ca83367-6e45-459f-a27b-476b1d01c936  (Lid close action)
    GUID Alias: LIDACTION
    Possible Setting Index: 000
    Possible Setting Friendly Name: Do nothing
    Possible Setting Index: 001
    Possible Setting Friendly Name: Sleep
    Possible Setting Index: 002
    Possible Setting Friendly Name: Hibernate
    Possible Setting Index: 003
    Possible Setting Friendly Name: Shut down
  Current AC Power Setting Index: 0x00000003
  Current DC Power Setting Index: 0x00000003   

Как видите, действие закрытия крышки теперь настроено правильно, как и два других. Однако, когда я захожу в панель управления, он все еще говорит «Сон».

Кто-нибудь знает, что происходит?


person lobstrosity    schedule 12.12.2014    source источник
comment
Вы перезагрузились. Многие ключи реестра читаются ТОЛЬКО при запуске или входе в систему.   -  person BambiLongGone    schedule 12.12.2014
comment
@BambiLongGone Нет, но сейчас попробую. Однако у меня сложилось впечатление, что -setactive устранит необходимость перезапуска.   -  person lobstrosity    schedule 12.12.2014
comment
Это зависело бы от того, был ли для этого вызов API. Большинство настроек проводника, за исключением настроек папки, считываются при запуске и записываются при завершении работы (только если вы завершили работу корректно). Ядро аналогично. Вам необходимо использовать вызовы API, чтобы повлиять на копии данных реестра в памяти, или перезагрузить/перезапустить приложение, чтобы повторно прочитать измененные значения.   -  person BambiLongGone    schedule 12.12.2014
comment
@BambiLongGone Интересно! Просто чтобы вы знали, я попробовал еще раз. эти настройки меняются мгновенно: план схемы, настройки яркости, выключение дисплея и перевод компьютера в спящий режим. Единственными двумя, которые не изменились, были настройки закрытия крышки и кнопки питания. После перезапуска они остаются неизменными, хотя -query показывает, что они установлены на 003.   -  person lobstrosity    schedule 12.12.2014


Ответы (1)


Это работает для меня, для действия крышки, без перезагрузки:

powercfg -setacvalueindex SCHEME_BALANCED SUB_BUTTONS LIDACTION 003
person pstraton    schedule 21.10.2016