解决笔记本合盖开盖DPI缩放大小变 (异于网传方法,Win11 24H2)

网上方案都试过,他们让改的注册表,我这边本身就是他们让改成的正确值,幽默。后来发现自己问题和他们不完全一样:我显示器正确缩放是200%,而合盖再开盖会有一个200%-->100%-->200%的变化过程,导致一些窗口位置改变,及一些不善于处理DPI变化的软件崩溃。

解决方案

Win+R,输入regedit.exe运行,注册表编辑器里找到如下路径:

复制代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Fonts

右键这个"Fonts",点"权限",弹出对话框里点"高级",在又弹出的对话框上方"所有者"栏处点"更改",键入你当前用户名,点"检查名称",再点"确定"。

勾选"替换子容器和对象的所有者",点"应用",再点"添加"。

点添加后弹出对话框,点"选择主体",输入 Everyone 点"检查名称",再点"确定"。
返回到上一个对话框后,"类型"改成"拒绝",点"显示高级权限",下面勾上"设置数值"、"删除"、"读取控制",点"确定"。

然后一直点确定,直到所有对话框都消失,关闭注册表编辑器。

此时,大功告成。不用重启电脑,你现在就可以合盖再开盖来测试。

原理

思路就是剥夺系统自动更改DPI的权限,找到注册表位置就好了。

Win11的DPI设置受注册表两个地方控制。上文提到的那个是系统默认DPI,另一个在 HKEY_CURRENT_USER\Control Panel\Desktop\PerMonitorSettings,这个地方的设置是监视器特异的,下面可以看到每个监视器的设置。计算实际DPI时,两个地方的设置不会相互覆盖,而是二者综合。经实测,此bug改的是第一个地方。也就是说,剥夺第一个地方的修改权,就能修复bug。

很巧的是,改显示设置里的DPI,改的是第二个地方。所以这样一番操作后,并不会影响我们自愿的DPI修改。

相关推荐
z落落12 小时前
C#WinForm 窗体切换与窗体传值(登录跳转案例)+WinForm 窗体传值(从上往下传、从下往上传)
开发语言·windows·c#
Dontla12 小时前
git bash打开Claude code报错:Claude Code on Windows requires git-bash.(别把git装其他位置,严格按照默认安装)找不到claude code
windows·git·bash
comcoo13 小时前
电脑自动干活不用值守!OpenClaw 本地部署完整实操流程
windows·开源·github·open claw部署·open claw部署包
蓝鸟197414 小时前
Windows Route 内外网双通原理+实战详解(彻底解决双网卡互斥断网)
windows·网络运维·电脑网络配置·路由冲突解决·route命令·内外网同时上网·windows路由 双网卡双通
2601_9618454215 小时前
法考真题及答案解析|历年真题|资料已整理
linux·windows·ubuntu·macos·centos·gnu
coolwaterld16 小时前
windows下删文件,找出“到底是谁占用
windows
caimouse18 小时前
Reactos 第6章 进程间通信(续)
windows
触底反弹18 小时前
拷个 .exe 到新电脑就跑不起来?你缺的不是文件,是对链接的理解
c++·windows·操作系统
W优化大师19 小时前
Windows 更新待处理弹窗一直不消失怎么解决,C 盘空间和后台任务该如何排查
windows·系统优化·磁盘清理·windows11·c盘·系统更新
无风听海19 小时前
在 ASP.NET Core 开发环境中为自定义域名签发受信任的自签名证书—HSTS 启用后的完整实践
windows·后端·asp.net