Zmień, co robi zamknięcie pokrywy, z wiersza polecenia?

8

Zastanawiam się, czy ktoś zna narzędzie lub polecenie, które może zmienić to ustawienie w systemie Windows jednym kliknięciem. Często muszę to zmienić na laptopie, niezależnie od tego, czy chcę nic nie robić, gdy pokrywa jest zamknięta, czy iść spać.

Jestem pewien, że można to jakoś zmienić z wiersza poleceń.

bame2
źródło

Odpowiedzi:

19

Zaczerpnięte z opcji zasilania na zamkniętej pokrywie . Na tej stronie jest też jeden lub dwa skrypty, ale metoda przedstawiona poniżej jest najlepsza, IMHO.


Możesz to ustawić za pomocą powercfgpoleceń.

Wstępnie skonfigurowane schematy mają następujące identyfikatory GUID:

Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e  (Balanced)
Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c  (High performance)
Power Scheme GUID: a1841308-3541-4fab-bc81-f71556f20b4a  (Power saver)

Użyję schematu Zrównoważonego dla moich przykładów, ale użyłbyś identyfikatora GUID dostarczonego przez:

powercfg -GETACTIVESCHEME

Można znaleźć identyfikatory GUID dla podgrup i ustawień zasilania, a także wartości indeksu dla każdego ustawienia zasilania, uruchamiając polecenie zapytania z identyfikatorem GUID schematu:

powercfg -Q 381b4222-f694-41f0-9685-ff5bb260df2e

Przeglądając dane wyjściowe, odkryjesz, że podgrupa GUID, którą chcesz, to:

Subgroup GUID: 4f971e89-eebd-4455-a8de-9e59040e7347  (Power buttons and lid)

i ustawienie mocy:

Power Setting GUID: 5ca83367-6e45-459f-a27b-476b1d01c936  (Lid close action)

z opcjami indeksu:

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

Aby więc skonfigurować system do wyłączania się po zamknięciu pokrywy, należy uruchomić:

powercfg -SETACVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 4f971e89-eebd-4455-a8de-9e59040e7347 5ca83367-6e45-459f-a27b-476b1d01c936 3
powercfg -SETDCVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 4f971e89-eebd-4455-a8de-9e59040e7347 5ca83367-6e45-459f-a27b-476b1d01c936 3

AC dla akcji „Podłączony” i DC dla akcji „Na baterii”.


Mam nadzieję że to pomoże.

Pamiętaj, że nie blokowałem cudzysłowu, ponieważ pomieszało to dość długie linie kodu. Dlatego ze względu na formatowanie pozostawiłem to bez cudzysłowu.

Greenonline
źródło
1

powercfg obsługuje aliasy dla prowadnic (nazwy schematów, grupy itp.)

@echo off

powercfg /s scheme_min
rem scheme_min is high performance

powercfg /setacvalueindex scheme_min sub_buttons lidaction 0
rem under buttons group; plugged in

powercfg /setdcvalueindex scheme_min sub_buttons lidaction 0

rem dc means on battery

rem check with powercfg.cpl gui

rem use powercfg /aliases for aliases instead of guid numbers

rem query with powercfg /q

powyższy skrypt przełączałby się na schemat wysokiej wydajności i ustawiał działanie pokrywy ( When I close the lid:) pod nim tak, aby działało Nonew obu przypadkach (albo podłączone, albo na baterii).

to jest w zasadzie trzy linie kodu jak reszta to prawie tylko komentarze ( REM arki ).


źródło
1

Poniższy wydaje się najłatwiejszym, a także nieco czytelnym sposobem zmiany zachowania z wiersza poleceń dla obecnie aktywnego schematu zasilania (dzięki odpowiedzi w17t i postowi TenForums ):

DoNothingWhenClosingTheLid.bat
::Do nothing when you close the lid
powercfg /setacvalueindex scheme_current sub_buttons lidaction 0
powercfg /setdcvalueindex scheme_current sub_buttons lidaction 0

::Re-activate current scheme to make settings take effect immediately
powercfg /setactive scheme_current
GoToSleepWhenClosingTheLid.bat
::Go to sleep/standby mode when you close the lid
powercfg /setacvalueindex scheme_current sub_buttons lidaction 1
powercfg /setdcvalueindex scheme_current sub_buttons lidaction 1

::Re-activate current scheme to make settings take effect immediately
powercfg /setactive scheme_current
Marcus Mangelsdorf
źródło