Ich möchte eine Tastenkombination erstellen, mit der ich die DPI-Skala auf meinem Computer schnell und einfach ändern kann, indem ich ein kleines Makro erstelle, das bei Erkennung der Tastenkombination ausgeführt wird.
In Windows 8.1 kann die DPI-Skala der Desktop-Anzeige über das Bedienfeld (siehe Abbildung unten) eingestellt werden und ist sofort wirksam. Alternativ kann die Skalierung manuell in der Registrierung festgelegt werden. Hierzu muss sich der Benutzer jedoch anmelden und den Computer abmelden oder neu starten, damit die Skalierung wirksam wird (und die Option "Eine Skalierungsstufe für alle meine Anzeigen" wird nur imitiert). .
Wie kann ich die DPI-Skala über die Befehlszeile oder auf andere Weise programmgesteuert einstellen?
windows
command-line
windows-8.1
dpi
high-dpi
FThompson
quelle
quelle
Let me choose one scaling level...
Kontrollkästchen geklickt habe, da der Schieberegler darüber in meinem Notizbuch ausgegraut ist.Antworten:
Der richtige Registrierungsschlüssel für die monitorunabhängige Skalierung ist
HKCU:\Control Panel\Desktop
der WertLogPixels
. Weitere Informationen zu allen DPI-bezogenen Registrierungseinstellungen finden Sie hier: http://technet.microsoft.com/en-us/library/dn528846.aspx#system Es gibt auch Informationen für den Fall, dass Sie für jede Anzeige eine andere Skalierung aktiviert haben .Ich habe ein kleines PowerShell-Skript geschrieben, das die DPI-Skalierung für alle Anzeigen in Abhängigkeit von der aktuellen Skalierung ändert und die Benutzerabmeldung durchführt, sodass ich das Skript nur ausführen muss, wenn ich mein Gerät auf einen anderen Monitor stelle.
Ich denke, Sie können es mit den Informationen des TechNet-Artikels an Ihre Bedürfnisse anpassen.
quelle
LogPixels
Werts gilt jedoch leider nur, wenn das Kontrollkästchen "Eine Skalierungsstufe für alle meine Anzeigen auswählen" aktiviert ist. Dies habe ich beim eigentlichen Durchspielen der Registrierungswerte beobachtet, wird aber auch durch den verknüpften Technet-Artikel bestätigt. Außerdem hat Ihre Lösung die Einschränkung, dass Benutzer abgemeldet werden müssen. Die DPIs werden nicht aktualisiert, ohne dass sich der Benutzer ab- und wieder anmeldet. Zwischen diesen beiden Nachteilen funktioniert Ihre Lösung für mich nicht ganz, aber für eine gute Antwort +1.HKCU:\Control Panel\Desktop\Win8DpiScaling
auf setzen1
. Andernfalls wird der Standardskalierungsfaktor verwendet und der Wert in ignoriertLogPixels
.HKCU:\Control Panel\Desktop
schauenHKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\GraphicsDrivers\ScaleFactors
Es gibt ein PowerShell-Skript zum Ändern der Bildschirmauflösung, das möglicherweise Abhilfe schafft. Ich habe keine Ahnung, ob die Änderung unter Windows 8.1 sofort vorgenommen wird, aber mit etwas Glück verwendet dieses Skript möglicherweise dieselbe API wie das Applet der Systemsteuerung.
Das vollständige
Set-ScreenResolution.ps1
Skript befindet sich im Skript-Repository , ist jedoch zu lang, um hier reproduziert zu werden.Die Beschreibung des Autors finden Sie im Artikel:
Hey, Scripting Guy! Wie kann ich die Auflösung meines Desktop-Monitors über Windows PowerShell ändern? .
Einige Informationen zur Verwendung finden Sie im Artikel:
Ändern der Bildschirmauflösung mit Powershell .
quelle