Winform程序使用app.minifest清单禁止高DPI无法失效问题

时间:2024-04-28 09:12:45

问题:Winform程序使用app.minifest清单禁止高DPI无法失效问题

摘要:因为笔记本基本都会有DPI放大,所以目前程序需要嵌入清单,并将其高DPI支持给禁止掉。

环境搭建:Winform、app.minifest

由于我的程序是使用CreateProcessAsUser来启动Winform,所以一开始以为是有权限问题。也有在群里跟大佬们还有工作的同事确认过使用的方式是否一致。最后确认是一致的,即采用explore.exe的token跟权限来启动我的Winform进程。

问题出现了清单在部分机子上能生效,部分机子生效不了

设置不支持高DPI的方式如下图:

 这些相信基本大家知道。但是在给配置的情况下,有些机子是正常,有些机子是不正常,还有的机子是一开始正常,后面突然又不正常,这就很不科学。所以后面经过一些排查考虑到可能是注册表问题,因此到注册表去全局搜索了下终于发现问题所在。

问题出现的根源,即导致清单不生效的情况之一

如图所示,经过验证,当这里对某路径下的程序设置了HIGHDPIAWARE支持后,会导致清单里的配置不生效。

 

解决方法

既然知道是注册表问题,那解决方法相信大家伙也都知道了怎么设置了。无非就是删除,后者把后面的值修改掉即可

最后

希望对大家有所帮助,还有什么问题可以在下方留言。谢谢!┭┮﹏┭┮希望不要再被移除了,这可是干货!!!!!!!