是否可以通过命令行更改显示比例?

是否可以通过命令行更改显示比例?

我有一台配备 2560 x 1440 显示屏的笔记本电脑,连接到 2 个外部 1080p 显示器。缩放比例正常,本机显示器为 125%,1080p 显示器为 100%,但当我断开笔记本电脑的连接时,笔记本电脑有时会达到 200% 的缩放比例,我需要在显示设置中手动重置它。

我想找到一个模拟此处设置的命令,这样每次拔下外接显示器时,我就不需要右键单击桌面并打开显示设置:

在此处输入图片描述

我发现的唯一注册表项/PowerShell 命令需要注销才能生效,但考虑到 GUI 设置可以立即生效,这似乎没有必要。

答案1

下面是一个批处理脚本,它将模拟键盘敲击来操作 GUI 来调整规模与布局选项和更改文本、应用和其他项目的大小当它运行时。这用于ms-settings:display打开展示屏幕,然后按下按一次 Tab 键向上箭头 5 次使用发送键以相应调整比例。它会按Alt+F4在完成后,按结束键关闭屏幕。此方法使用批处理脚本构建动态 vb 脚本,然后使用脚本模拟按下键盘键。


批处理脚本

笔记: .bat只需将其保存为带有或扩展名的文本文件.cmd并执行即可运行。

@ECHO OFF

explorer ms-settings:display
ping -n 2 127.0.0.1 > nul

:VBSDynamicBuild
SET TempVBSFile=%tmp%\~tmpSendKeysTemp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{TAB}{UP 5}"                      >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "%%{F4}"                           >>"%TempVBSFile%"

CSCRIPT //nologo "%TempVBSFile%"
EXIT

更多资源

答案2

有一个名为的命令行应用程序设置DPI

相关内容