Jak automatycznie zmienić skalowanie DPI ekranu po przełączeniu na konfigurację z wieloma monitorami?

1

Mam laptopa 14 "1920 × 1080 i ekran 24" 1920 x 1200. Różnica gęstości pikseli jest ogromna.

Kiedy używam dużego ekranu jako głównego i laptopa jako dodatkowego ekranu, chciałbym mieć mniejszy z nich ustawiony na 150% skalowania, dzięki czemu mogę go wygodnie używać. Ale gdy jestem z dala od biurka i zewnętrzny ekran jest odłączony, chciałbym, aby laptop automatycznie przełączał się na 100% skalowanie, aby zmaksymalizować obszar pulpitu.

Jak mogę automatycznie przełączać skalowanie DPI w systemie Windows, gdy zewnętrzne ekrany są połączone lub rozłączone?

Jeśli jest to konieczne, mogę używać oprogramowania innych firm, ale wolę trzymać się wbudowanych funkcji systemu Windows.

Używam systemu Windows 10 Pro w wersji 1703.

gronostaj
źródło
Nie sądzę, aby istniała jakakolwiek funkcja systemu Windows do robienia tego, co chcesz. Jak bardzo tego chcesz? ty moc być w stanie zrobić coś z PowerShellem, ale prawdopodobnie będzie to strasznie skomplikowane.
lifesaspanner
1
@lifesaspanner Cóż, wyceniłem moje zapotrzebowanie na nie w 50 punktach reputacji płaconych nagrodą;) To może być przydatne dla mnie, ale nie mam na to palącej potrzeby.
gronostaj
@gronostaj Obecnie pracuję nad podobnym projektem wykorzystującym pliki wsadowe do wywoływania skryptów Powershell, ale mój dotyczy jasności monitora. Powinienem go zabić na początku przyszłego tygodnia, więc jeśli w tym momencie nie ma odpowiedzi, przynajmniej podzielę się z tobą moimi badaniami i procesem. Powinno to być absolutnie możliwe dzięki PowerShell, ale będzie to ból w twoich plecach.
jcam3
@ jcam3 To może być interesujące! Jeśli jest to dla Ciebie przydatne, ScreenBright może sterować jasnością ekranu zewnętrznych monitorów za pomocą DDC / CI i ma interfejs linii poleceń. Używam go z SE-TrayMenu kontrolować jasność z obszaru powiadomień.
gronostaj
1
@gronostaj Będę musiał przyjrzeć się bliżej tej aplikacji, wygląda interesująco. To, co próbuję zrobić, to w zasadzie 3-5 sekundowa redukcja jasności zapętlona co 20 minut. Chodzi o to, aby mieć automatyczne nieinwazyjne przypomnienie, aby zrobić przerwę na ekranie, a następnie odciążyć oczy. Ma też potencjał dla aplikacji w stylu pomodoro, ale najpierw musi działać.
jcam3

Odpowiedzi:

0

Nie możesz zmienić skalowania DPI automatycznie, ponieważ wymaga wylogowania i zalogowania.

Oto dobry wątek na temat używania PowerShell do ustawiania klucza rejestru DPI i przełączania się między dwoma DPI nieco szybciej. Musisz się jeszcze wylogować, a skrypt to zautomatyzuje.

https://stackoverflow.com/questions/10365394/change-windows-font-size-dpi-in-powershell

Jeśli chcesz to rozwinąć, oto informacje na temat odczytu informacji o monitorze za pomocą Powershell: https://blogs.technet.microsoft.com/heyscriptingguy/2013/10/03/use-powershell-to-discover-multi-monitor-information/

A oto informacje o zmianie klucza rejestru określonego użytkownika. Będzie to konieczne, ponieważ po uruchomieniu skryptu, gdy użytkownik nie jest zalogowany lub podczas uruchamiania, gałąź rejestru nie zostanie załadowana. https://www.pdq.com/blog/modifying-the-registry-of-another-user/

Połącz to wszystko razem z pomysłowością i możesz zaplanować uruchomienie tego skryptu przy wylogowaniu i uruchomieniu komputera. Najtrudniejsze jest to, że zawsze będziesz musiał zrobić nowe logowanie, aby nowe ustawienia zaczęły obowiązywać, a dla mnie jest to największa wada.

Teraz lepszym rozwiązaniem może być zmiana rzeczywistej rozdzielczości ekranu, którą można zrobić bez wylogowywania: https://blogs.technet.microsoft.com/heyscriptingguy/2010/07/07/hey-scripting-guy-how-can--change-my-desktop-monitor-resolution-via-windows-powershell/

Wiele programów nie działa poprawnie w niestandardowych DPI, więc jeśli mnie zapytasz, zmiana rozdzielczości wyświetlania jest lepszym rozwiązaniem.

Więc masz to. Wszystkie zasoby, aby utworzyć nowy skrypt do automatyzacji tego. Teraz możesz zobaczyć, czy możesz dostać kogoś http://stackoverflow.com aby ci w tym pomóc. :)

Appleoddity
źródło
„Nie można automatycznie zmieniać skalowania DPI, ponieważ wymaga ono wylogowania i zalogowania się.” To już nie jest prawdą. Dotyczy to tylko skalowania starszego typu. Windows 10 może zmieniać skalowanie w locie.
Daniel B
Przepraszamy, ale nie masz racji. System Windows zawsze dostosowuje DPI, ale wskazuje, że musisz się wylogować, aby dokończyć zmianę. Wypróbuj, zobaczysz. Właśnie potwierdziłem to na Windows 10.
Appleoddity
Mówiąc dokładniej, komunikat brzmi: „Niektóre aplikacje nie zareagują na skalowanie, dopóki się nie wylogujesz.” - I tak jest. Od razu skaluje się. Większość programów działa poprawnie. Niewielu to robi.
Daniel B
Słusznie. Nie udało mi się jednak znaleźć interfejsu API do modyfikowania DPI i zakładam tylko, że wynika to z wymogu wylogowania i zalogowania się (nawet jeśli tylko w przypadku niektórych aplikacji) i niezgodności, którą wykazują niektóre programy.
Appleoddity
Wylogowanie się nie jest dla mnie opcją, przerwałoby to moją pracę. Chcę, aby DPI płynnie się zmieniało przy zmianie ustawień ekranu.
gronostaj