Je voudrais créer un raccourci clavier pour changer rapidement et facilement l'échelle DPI sur ma machine, en créant une petite macro à exécuter lors de la détection du raccourci clavier.
Dans Windows 8.1, l'échelle DPI de l'affichage du bureau peut être définie via le panneau de commande (illustré ci-dessous), prenant effet immédiatement. Alternativement, l'échelle peut être définie manuellement dans le registre, mais cela nécessite que l'utilisateur se connecte et se déconnecte ou redémarre la machine pour prendre effet (et ne fonctionne que pour imiter l'option "un niveau de mise à l'échelle pour tous mes affichages") .
Comment puis-je définir l'échelle DPI via la ligne de commande ou autrement par programme?
windows
command-line
windows-8.1
dpi
high-dpi
FThompson
la source
la source
Let me choose one scaling level...
case à cocher car le curseur au-dessus est grisé sur mon bloc-notes.Réponses:
La clé de registre correcte pour la mise
HKCU:\Control Panel\Desktop
à l' échelle indépendante du moniteur est avec la valeurLogPixels
. Vous trouverez plus d'informations sur tous les paramètres de registre liés à DPI ici: http://technet.microsoft.com/en-us/library/dn528846.aspx#system Il existe également des informations sur le cas où vous avez activé une mise à l'échelle différente pour chaque affichage .J'ai écrit un petit script PowerShell qui modifie la mise à l'échelle DPI pour tous les écrans en fonction de la mise à l'échelle actuelle et effectue la déconnexion de l'utilisateur, je n'ai donc qu'à exécuter le script lorsque je place mon appareil sur un autre moniteur.
Je pense que vous pouvez le modifier selon vos besoins avec les informations de l'article TechNet.
la source
LogPixels
valeur ne s'applique que lorsque la case à cocher "Permettez-moi de choisir un niveau de mise à l'échelle pour tous mes affichages" est cochée, ce que j'avais observé en jouant avec les valeurs de registre moi-même, mais cela est également confirmé par l'article Technet lié. En outre, votre solution présente la mise en garde de la nécessité de se déconnecter des utilisateurs; les DPI ne sont pas mis à jour sans que l'utilisateur se déconnecte et se reconnecte. Entre ces deux inconvénients, votre solution ne fonctionne pas tout à fait pour moi, mais +1 tout de même pour une bonne réponse.HKCU:\Control Panel\Desktop\Win8DpiScaling
sur1
. Sinon, il utilisera le facteur d'échelle par défaut et ignorera la valeur deLogPixels
.HKCU:\Control Panel\Desktop
regarderHKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\GraphicsDrivers\ScaleFactors
Il existe un script PowerShell pour changer la résolution d'écran qui pourrait aider. Je ne sais pas si le changement qu'il fait est immédiat sur Windows 8.1, mais avec un peu de chance, ce script pourrait utiliser la même API que celle utilisée par l'applet du Panneau de configuration.
Le complet
Set-ScreenResolution.ps1
script est disponible dans le référentiel de scripts , mais il est trop long pour être reproduit ici.Sa description par l'auteur se trouve dans l'article:
Hey, Scripting Guy! Comment puis-je modifier la résolution de mon moniteur de bureau via Windows PowerShell? .
Vous trouverez des informations sur son utilisation dans l'article:
Modification de la résolution d'écran avec Powershell .
la source