Chciałbym utworzyć skrót klawiaturowy, aby szybko i łatwo zmienić skalę DPI na moim komputerze, poprzez utworzenie małego makra uruchamianego po wykryciu skrótu klawiaturowego.
W systemie Windows 8.1 skalę DPI ekranu pulpitu można ustawić za pomocą panelu sterowania (na zdjęciu poniżej), od razu zaczynając działać. Alternatywnie skalę można ustawić ręcznie w rejestrze, ale w tym celu użytkownik musi się zalogować i wylogować lub ponownie uruchomić komputer, aby zadziałał (i działa tylko naśladując opcję „jeden poziom skalowania dla wszystkich moich ekranów”) .
Jak ustawić skalę DPI za pomocą wiersza polecenia lub w inny sposób programowo?
windows
command-line
windows-8.1
dpi
high-dpi
FThompson
źródło
źródło
Let me choose one scaling level...
pola wyboru, ponieważ suwak powyżej jest wyszarzony w moim notatniku.Odpowiedzi:
Prawidłowy klucz rejestru do niezależnego skalowania monitora ma
HKCU:\Control Panel\Desktop
wartośćLogPixels
. Więcej informacji na temat wszystkich ustawień rejestru związanych z DPI można znaleźć tutaj: http://technet.microsoft.com/en-us/library/dn528846.aspx#system Istnieją również informacje dotyczące przypadku, gdy włączono różne skalowanie dla każdego wyświetlacza .Napisałem mały skrypt PowerShell, który zmienia skalowanie DPI dla wszystkich wyświetlaczy w zależności od bieżącego skalowania i wykonuje wylogowanie użytkownika, więc po prostu muszę wykonać skrypt, gdy umieszczę urządzenie na innym monitorze.
Myślę, że możesz zmodyfikować go dla swoich potrzeb, korzystając z informacji w artykule TechNet.
źródło
LogPixels
wartości ma zastosowanie tylko wtedy, gdy pole wyboru „Pozwól mi wybrać jeden poziom skalowania dla wszystkich moich wyświetlaczy” jest zaznaczone, co zauważyłem, gdy sam bałaganiłem wartości rejestru, ale jest to również potwierdzone w powiązanym artykule Technet. Poza tym twoje rozwiązanie wymaga wylogowania użytkownika; DPI nie są aktualizowane bez wylogowania użytkownika i ponownego zalogowania. Pomiędzy tymi dwiema wadami twoje rozwiązanie nie działa dla mnie, ale daje +1, by uzyskać świetną odpowiedź.HKCU:\Control Panel\Desktop\Win8DpiScaling
na1
. W przeciwnym razie użyje domyślnego współczynnika skalowania i zignoruje wartość wLogPixels
.HKCU:\Control Panel\Desktop
patrzećHKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\GraphicsDrivers\ScaleFactors
Istnieje skrypt PowerShell do zmiany rozdzielczości ekranu, który może pomóc. Nie mam pojęcia, czy zmiana jest natychmiastowa w systemie Windows 8.1, ale przy odrobinie szczęścia ten skrypt może korzystać z tego samego interfejsu API, który jest używany przez aplet Panelu sterowania.
Pełny
Set-ScreenResolution.ps1
skrypt jest dostępny w repozytorium skryptów , ale jest zbyt długi, aby go odtworzyć tutaj.Jego opis autorstwa autora można znaleźć w artykule:
Hej, skrypciarze! Jak zmienić rozdzielczość monitora pulpitu za pomocą programu Windows PowerShell? .
Niektóre informacje na temat korzystania z niego można znaleźć w artykule:
Zmiana rozdzielczości ekranu za pomocą programu PowerShell .
źródło