Jak zapobiec zmianie jasności ekranu laptopa podczas odłączania / podłączania zasilania z baterii

23

Kiedy korzystam z laptopa, ciągle dostosowuję jasność ekranu w zależności od warunków oświetleniowych w pomieszczeniu (np. Ile światła dociera z okien itp.). Ale jeśli odłączę laptopa lub podłączę go z powrotem, system Windows sprawdzi domyślne ustawienie jasności w profilu zasilania dla „na baterii” lub „podłączony” i odpowiednio zmieni jasność. Jest to wstrząsające doświadczenie, a następnie muszę ponownie znaleźć idealną jasność dla mojej obecnej sytuacji, zamiast kontynuować pracę.

Chciałbym to zrobić, aby podłączanie lub odłączanie baterii nie było wyzwalaczem, który w ogóle reguluje jasność ekranu. Jasność ekranu powinna się zmieniać tylko wtedy, gdy sam ją dostosuję. Czy ktoś wie, jak można to osiągnąć?

Edycja: napotkałem ten problem zarówno w systemie Windows Vista, jak i Windows 7.

Koczownik
źródło
3
To ustawienie znajduje się w opcjach zasilania w systemie Windows.
Moab
1
Moab, nie wierzę, że jest to ustawienie w opcjach zasilania. Zobacz odpowiedź na odpowiedź poniżej.
Nomad
Rozwiązanie zawierające skrypt PowerShell i konfigurację harmonogramu zadań można znaleźć tutaj: intrepidis.blogspot.co.uk/2018/05/…
intrepidis
Aktualizacja systemu Windows 10 „May 2019” ma wreszcie tylko wspólne ustawienia jasności, więc nie będzie już zmieniać jasności po podłączeniu lub odłączeniu ładowarki.
skrause

Odpowiedzi:

7

Ok, po kilku godzinach ćwiczeń mózgu zrobiłem ten skrypt PowerShell ... oto jest

while($true)
{

$a = Get-WmiObject -ns root/wmi -class wmiMonitorBrightNess
$a1 = $a.Currentbrightness

$b = Get-WmiObject -ns root/wmi -class batterystatus
$b1 = $b.poweronline

start-sleep 1

$b = Get-WmiObject -ns root/wmi -class batterystatus
$b2 = $b.poweronline

If ($b2 -ne $b1)
{
$c = Get-WmiObject -ns root/wmi -class wmiMonitorBrightNessMethods
$c.WmiSetBrightNess(0,$a1)
}

}

Skopiuj w notatniku i zapisz z rozszerzeniem „.ps1”.

Co robi, często sprawdza stan zasilania podłączony lub nie. Jeśli stan zasilania zostanie zmieniony, przywróci poprzednią wartość jasności.

Przetestowałem to na moim laptopie z Win8.1, działa dobrze.

  • Możesz dostosować czas reakcji, modyfikując start-sleepwartość (obecnie jest to 1 sekunda)

  • Aby uruchomić ten skrypt, zasady wykonywania PowerShell muszą zostać zmienione z domyślnych.

  • Ten skrypt jest tylko teoretycznym przykładem, w praktyce okna PowerShell pozostaną otwarte, dla niektórych mogą być problematyczne. Nie omawiam sposobów ukrycia okna.

DrNT007
źródło
Ten skrypt wydaje się działać, ale ma jeden mały problem: ciągle powiększającą się pamięć. Dodaj [GC]::Collect()na końcu pętli i upewnij się, że masz najnowszą wersję programu PowerShell, postępując zgodnie z tą stroną . Dlaczego należy zaktualizować .
Didii,
4

Wściekałem się na ten sam problem, co rozwiązanie Nomada i DrNT007, które działało świetnie.

Przeszukałem trochę w sieci, aby ukryć okno PowerShell, i doszedłem do tego wątku i znalazłem rozwiązanie user2656928, które najbardziej mi odpowiada: po prostu dodaj następujący kod na górze skryptu DrNT007, a okno PowerShell na chwilę pokaże, a następnie zniknie :

$t = '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);'
add-type -name win -member $t -namespace native
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0)

Następnie chciałem umieścić skrypt w folderze startowym systemu Windows, ale dał mi błąd. Jestem zdecydowanie noobem i rozwiązałem ten problem tylko metodą prób i błędów: dowiedziałem się, że nazwa skryptu (i, jak przypuszczam, jego ścieżka) NIE może zawierać spacji, ale nadal nie rozumiem, dlaczego daje błąd, jeśli bezpośrednio umieść w oknie startowym ... W każdym razie umieściłem go w folderze Windows i skróciłem go w folderze startowym. W ten sposób w Windows 8.1 działa jak urok.

Jacopo Irace
źródło
0

System Windows 7,

spójrz w Panel sterowania \ Sprzęt i dźwięk \ Opcje zasilania \ Edytuj ustawienia planu \

Na baterii lub podłączony

Logman
źródło
3
Żadna z opcji widocznych w Ustawieniach planu nie pomoże. Muszę wybrać domyślną jasność dla „Na baterii” i domyślną jasność dla „Podłączony”. Dlatego za każdym razem, gdy podłączam lub odłączam laptopa, sprawdza on odpowiednie ustawienie domyślne i dostosowuje je do tego. Ale chcę, żeby nic się nie wydarzyło po odłączeniu lub podłączeniu laptopa. Popraw mnie, jeśli coś nie pojawia się w tych ustawieniach.
Nomad
-2

Otwórz Opcje zasilania> Zmień ustawienia planu (dla planu zasilania z wybranym przyciskiem opcji)> Zmień zaawansowane ustawienia zasilania> Wyświetlacz> Jasność wyświetlacza

Ustaw „Na baterii” na taki sam procent, jak „podłączony”, klikając lewym przyciskiem myszy tekst „na baterii”

wprowadź opis zdjęcia tutaj

Moab
źródło
5
To nie pomaga. Przeczytaj wszystko, co napisałem powyżej. Pozwól też, że wyjaśnię, co się stanie, gdy skorzystam z Twojej sugestii. Ustawiłem „na akumulatorze” i „podłączony” na to samo ustawienie, na przykład 50%. Następnie, ponieważ za dużo światła dochodzi z okien domu, dostosowuję jasność do 100% (używając klawiszy skrótu, nie używając profilu mocy, ponieważ jest wiele ekranów do kliknięcia, biorąc pod uwagę, że słońce może przejdź kilka sekund później za chmurę). Po odłączeniu komputera resetuje się do 50%. Nie chcę, żeby tak się stało.
Nomad,
Mogę tylko zasugerować, czy w biosie znajduje się ustawienie jasności ekranu, niektóre laptopy tego nie robią
Moab
1
W moim przypadku ustawienia te są całkowicie ignorowane. Nadal mam losowo zmieniającą się jasność ekranu. Mam Acer Aspire, Windows 8.1 i Intel Graphics Control Panel nie ma pola wyboru, aby wyłączyć oszczędzanie energii po podłączeniu. Usługa jest już zatrzymana. Nie chcę instalować panelu Intel, ponieważ ekran może stać się zbyt ciemny.
derloopkat
-2

Poniżej przyciemnionego wyświetlacza powinna być włączona jasność adaptacyjna. Wyłącz to, a pozostanie na tej samej jasności, niezależnie od tego, czy jest jasne czy ciemne.

jayroach2
źródło
3
Brzmi jakbyś źle zrozumiał. Lubię ręcznie regulować jasność (a mój komputer i tak nie ma funkcji adaptacyjnej jasności). Chcę zatrzymać to, jak automatycznie resetuje się jasność za każdym razem, gdy podłączam lub odłączam zasilanie laptopa.
Nomad,
-2

Dla mnie (w HP EliteBook 8570w) musiałem zmienić ustawienia mocy karty graficznej:

Panel sterowania -> Opcje zasilania -> Edytuj ustawienia planu -> Zmień zaawansowane ustawienia zasilania -> Ustawienia zasilania ATI Graphics -> Ustawienia ATI Powerplay -> Na baterii, aby „Maksymalizować wydajność” zamiast „Maksymalizować żywotność baterii”

Będziesz także oczywiście chciał upewnić się, że jasność wyświetlacza na baterii jest ustawiona na 100%, jak wspomnieli inni.

kaleb
źródło
-2

Czy wszystkie laptopy HP / Compaq mogą działać: - spójrz na sekcję „Dostosuj jasność LCD za pomocą klawiszy funkcyjnych” http://h10025.www1.hp.com/ewfrf/wc/document?cc=us&lc=en&docname=c00832191

Odłączyłem zasilacz sieciowy / ładowarkę i nacisnąłem Fn+ F8(2-3 razy powinno dojść do 100%), aby rozjaśnić wyświetlacz; Fn+, F7aby obniżyć jasność. Musiałem podłączyć zasilacz sieciowy i odłączyć go, aby zmiany, które wprowadziłem, były widoczne.

Korzystanie z Control Panel -> "Video Driver Name"[*] -> Display Settings -> Power Settings -> Intel Display Power Saving Technology -> Maximum Quality vs. Maximum Battery=> Nic mi nie zrobiło, ale być może konieczne było ponowne uruchomienie komputera ...

[*] (mój to Intel GMA Driver for Mobile) i może to być również ATI itp.

Val Pope
źródło