Jus*_*tin 7 multiple-monitors dpi scaling windows-10
我有一台带有 2560 x 1440 显示器的笔记本电脑,连接到 2 个外部 1080p 显示器。缩放比例正常,原生显示器为 125%,1080p 显示器为 100%,但是当我断开笔记本电脑时,有时笔记本电脑的缩放系数会达到 200%,我需要在显示设置中手动重置它。
我想在这里找到一个模拟设置的命令,这样我就不需要在每次拔掉外接显示器时右键单击桌面并打开显示设置:
我为此找到的唯一注册表项/PowerShell 命令需要注销才能生效,鉴于 GUI 设置可以立即生效,这似乎没有必要。
下面是一个批处理脚本,它将模拟键盘敲击来操作 GUI 以调整缩放和布局选项,并在运行时更改大小或文本、应用程序和其他项目。这用于ms-settings:display打开显示屏幕,然后使用发送键按一次 Tab 键和向上箭头 5 次以相应地调整比例。完成后,它将按结束键的Alt+F4关闭屏幕。此方法使用批处理脚本构建动态 vb 脚本,然后使用cscript执行 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
Run Code Online (Sandbox Code Playgroud)