有没有办法在未连接外接显示器时自动将 Windows 布局缩放比例更改为 125%,但在连接外接显示器时自动将其设置回 200%?
在 Windows 11(和 10)中,可以缩放整个 Windows“窗口管理器” 几个不同的步骤(注意:这与改变屏幕分辨率不同)。
目前我将其设置为 200%,因为我坐得离笔记本电脑显示屏很远,因为它放在我的桌子上,并且连接了另一个外部显示器。
如果我在笔记本上工作而不是放在桌子上的话,200% 就太多了。
答案1
据我所知,使用机载工具没有简单的解决方案。但由于我遇到了同样的情况,所以我的解决方案如下。
你需要两样东西:
- setDpi.exe(github:imniko/SetDPI)
- 自动热键(自动热键)
我编写了一个在主显示器上发生变化的脚本,因为我的内部显示器只有在单独运行时才是主显示器,所以您可能必须调整display_internal
和display_lg
变量。
以下是脚本
#Requires AutoHotkey v2.0
; requires setDpi.exe in $PATH https://github.com/imniko/SetDPI/
OnMessage 0x007E, OnDisplayChange ; System Event: Display changes
Persistent
OnDisplayChange(wParam, lParam, *)
{
scale_connected := 150
scale_solo := 100
display_lg := "\\.\DISPLAY4"
; display_internal := "\\.\DISPLAY1"
; Determine the scale based on the primary monitor
; TODO: find a more stable property
new_scale := MonitorGetName() == display_lg ? scale_connected : scale_solo
Sleep 1000 ; setDpi needs to be delayed a little bit, otherwise explorer.exe crashes
Run("setDpi.exe " . new_scale . " 1")
}