无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: lhc0688
打印 上一主题 下一主题

[已解决] 只差一步:解决PE中DPI显示缩放难题!

    [复制链接]
91#
发表于 2022-4-29 15:16:02 | 只看该作者
回复

使用道具 举报

92#
发表于 2022-4-29 16:07:04 | 只看该作者
2013koko 发表于 2022-4-29 14:23
请帮忙测试下我修改的这个壳是否有问题,谢谢!
https://www.123pan.com/s/CTv9-wQHQH

連結失效了...無法下載

点评

麻烦点楼上的链接,有点怪,看着是一样的呀  详情 回复 发表于 2022-4-29 16:16
回复

使用道具 举报

93#
发表于 2022-4-29 16:10:32 来自手机 | 只看该作者
我看看
回复

使用道具 举报

94#
发表于 2022-4-29 16:16:05 | 只看该作者
HIGHQ 发表于 2022-4-29 16:07
連結失效了...無法下載

麻烦点楼上的链接,有点怪,看着是一样的呀

点评

我分别在 1920*1080 及1366*768 的笔记本及台式机上使用你提供的ISO壳测试, 执行都正常, 效果也不错, 上图参考一下:  详情 回复 发表于 2022-4-29 17:00
回复

使用道具 举报

95#
发表于 2022-4-29 17:00:36 | 只看该作者
2013koko 发表于 2022-4-29 16:16
麻烦点楼上的链接,有点怪,看着是一样的呀

我分别在 1920*1080 及1366*768 的笔记本及台式机上使用你提供的ISO壳测试,
执行都正常, 效果也不错, 上图参考一下:

SShot(1366).jpg (95.98 KB, 下载次数: 133)

SShot(1366).jpg

SShot(1920).jpg (213.92 KB, 下载次数: 122)

SShot(1920).jpg

点评

好的,非常感谢!  详情 回复 发表于 2022-4-29 17:02
回复

使用道具 举报

96#
发表于 2022-4-29 17:02:37 来自手机 | 只看该作者
HIGHQ 发表于 2022-4-29 17:00
我分别在 1920*1080 及1366*768 的笔记本及台式机上使用你提供的ISO壳测试,
执行都正常, 效果也不错, 上 ...

好的,非常感谢!
回复

使用道具 举报

97#
发表于 2022-4-29 18:44:02 | 只看该作者
非常不错,学习了!
回复

使用道具 举报

98#
发表于 2022-4-29 21:42:27 | 只看该作者
2013koko 发表于 2022-4-29 14:27
69楼的贴子不同dpi的差别
SystemParametersInfoW,159,2,0,1"
SystemParametersInfoW,159,3,0,1"

我写了一个pecmd小程序,参考了红毛大佬的代码,支持自动缩放dpi,运行时机是进入桌面后,可能需要重启一下explorer,有兴趣可以测试一下,system32需要有pecmd.exe
自动设置dpi.exe (8.5 KB, 下载次数: 54)

点评

收到,请问这个能像setdpi.exe 150 这样设置dpi吗?因为以前也有坛友对默认的dpi不满意,想要调整。如果可以,那就可以替代setdpi.exe,做成右键菜单选项,满足不同的需求,谢谢!  详情 回复 发表于 2022-4-29 22:28

评分

参与人数 1无忧币 +5 收起 理由
freesoft00 + 5

查看全部评分

回复

使用道具 举报

99#
发表于 2022-4-29 22:28:17 来自手机 | 只看该作者
826773297 发表于 2022-4-29 21:42
我写了一个pecmd小程序,参考了红毛大佬的代码,支持自动缩放dpi,运行时机是进入桌面后,可能需要重启一 ...

收到,请问这个能像setdpi.exe 150 这样设置dpi吗?因为以前也有坛友对默认的dpi不满意,想要调整。如果可以,那就可以替代setdpi.exe,做成右键菜单选项,满足不同的需求,谢谢!

点评

只自动获取,没有命令参数 原理就是获取系统推荐dpi,然后设置  详情 回复 发表于 2022-4-30 07:27
回复

使用道具 举报

100#
发表于 2022-4-30 07:27:55 | 只看该作者
2013koko 发表于 2022-4-29 22:28
收到,请问这个能像setdpi.exe 150 这样设置dpi吗?因为以前也有坛友对默认的dpi不满意,想要调整。如果 ...

只自动获取,没有命令参数
原理就是获取系统推荐dpi,然后设置

点评

好的,希望大佬再发下功,把setdpi功能加上,那个需要VC支持,你这原生pecmd,秒杀对手  详情 回复 发表于 2022-4-30 10:37
回复

使用道具 举报

101#
发表于 2022-4-30 10:37:36 | 只看该作者
826773297 发表于 2022-4-30 07:27
只自动获取,没有命令参数
原理就是获取系统推荐dpi,然后设置

好的,希望大佬再发下功,把setdpi功能加上,那个需要VC支持,你这原生pecmd,秒杀对手

点评

这个挺好玩的,做了个WCS,给你们自由发挥吧! setdpi.wcs 支持带参数运行,没有参数时自动设置。/reg参数注册右键 例: pecmd load setdpi.wcs pecmd load setdpi.wcs /reg pecmd load s  详情 回复 发表于 2022-4-30 13:14
回复

使用道具 举报

102#
发表于 2022-4-30 10:40:31 | 只看该作者
wsdyleon 发表于 2022-4-29 11:48
确实是这个问题。
我测试了下,用lhc0688的壳子,2013koko的wim,分辨率不再是800*600了。
当然设置分 ...

我这也跟风改了bcd,有空帮测一下,等你消息哟
回复

使用道具 举报

103#
发表于 2022-4-30 13:28:08 | 只看该作者
527104427 发表于 2022-4-30 13:14
这个挺好玩的,做了个WCS,给你们自由发挥吧!

这个帖子引一众大佬纷纷现身

点评

貌似自动设置的逻辑搞反了 再来一发吧,不支持的系统就不创建右键了  详情 回复 发表于 2022-4-30 19:09
回复

使用道具 举报

104#
发表于 2022-4-30 14:01:11 | 只看该作者
Bluebells 发表于 2022-4-29 10:56
我也来一个右键菜单更改缩放比例的注册表:
仅依赖 PECMD 外部工具, 感谢 szwp 提供使用 PECMD 更改 DPI 的 ...

本注册表只需要pecmd支持,无需其它vc,实机测试有效,赞!
回复

使用道具 举报

105#
发表于 2022-4-30 20:23:43 | 只看该作者
527104427 发表于 2022-4-30 19:09
貌似自动设置的逻辑搞反了
再来一发吧,不支持的系统就不创建右键了

自动缩放比例能不能往大的方向靠靠?或者给个参数让可以往大的方向靠?3200x2000的15寸屏幕,系统推荐缩放是200%。106楼的版本会自动整成175%。


点评

[attachimg]500609[/attachimg] 可以自己改啊,都是明码,175改成200  详情 回复 发表于 2022-4-30 20:43
ifex $%curx%>=1600, set dpi=125 //HD ifex $%curx%>=1920, set dpi=150 //FHD ifex $%curx%>=2560, set dpi=175 //2K ifex $%curx%>=3840, set dpi=200 //4K ifex $%curx%>=7680, set dpi=300 /  详情 回复 发表于 2022-4-30 20:40
回复

使用道具 举报

106#
发表于 2022-4-30 20:32:01 | 只看该作者
527104427 发表于 2022-4-30 19:09
貌似自动设置的逻辑搞反了
再来一发吧,不支持的系统就不创建右键了

自动dpi + 右键 ,齐活了!

sshot-1.png (1.61 MB, 下载次数: 135)

sshot-1.png

点评

恭喜恭喜啊  详情 回复 发表于 2022-4-30 20:44
回复

使用道具 举报

107#
发表于 2022-4-30 20:40:50 | 只看该作者
本帖最后由 2013koko 于 2022-4-30 20:46 编辑
hua_wuxin 发表于 2022-4-30 20:23
自动缩放比例能不能往大的方向靠靠?或者给个参数让可以往大的方向靠?3200x2000的15寸屏幕,系统推荐缩 ...

      ifex $%curx%>=1600, set dpi=125  //HD
        ifex $%curx%>=1920, set dpi=150  //FHD
        ifex $%curx%>=2560, set dpi=175  //2K
        ifex $%curx%>=3840, set dpi=200  //4K
        ifex $%curx%>=7680, set dpi=300  //8K

楼主的设定是这样的,大于等于后的横向分辨率可以按自己想要的调
      ifex $%curx%>=3200, set dpi=200  //4K 这样,3200 就按200%


点评

基准按16:9设定,这样也可以涵盖16:10,这两个应该占绝大多数;  发表于 2022-5-1 01:13
4320 300% 2160 200% 1440 175% 1080 150% 720 125%  发表于 2022-5-1 01:11
后面改成按纵向分辨率判断了,因为显示器各种宽的太多,而高相对种类偏少,而且按纵向分辨率缩放后,多宽的显示器都没问题;  发表于 2022-5-1 01:09
回复

使用道具 举报

108#
发表于 2022-4-30 20:49:00 | 只看该作者

感谢大佬!
回复

使用道具 举报

109#
发表于 2022-4-30 21:48:32 | 只看该作者
本帖最后由 2013koko 于 2022-4-30 21:57 编辑

总结一下在这个帖子的得与失:
1、根据 lhc0688 大佬的研究,发现微pe的bcd中GraphicsForceHighestMode参数的引入,有效解决部分机型分辨率识别错误的问题,虽然还有一个坛友一直未反馈测试结果,但估计应该问题不大。
2、根据显示器分辨率的检测结果来自适应DPI显示比例,在论坛多位大佬的参与下,已得到完美解决:并且只依赖pecmd而无需其它,这个非常赞!
3、在个人pe用“右键dpi设置 + 自动 kill explorer”出现的桌面图标间距异常增大的问题,用原始完整注册表、替换微PE的 DEFAULT 注册表、替换pecmd版本,均未解决问题,原因不详。好在“右键dpi设置 + 手动 kill explorer”还算正常,并且事实上无需 kill explorer 就能设置 dpi 生效,暂时就得过且过了。

一个帖子,解决了分辨率、DPI两个问题,感谢楼主开了个好帖!
感觉又有了更新pe的必要了

回复

使用道具 举报

110#
发表于 2022-4-30 22:55:03 | 只看该作者
感觉这贴要成为PE的新要求了
支持一波
回复

使用道具 举报

111#
 楼主| 发表于 2022-5-1 00:54:59 | 只看该作者
本帖最后由 lhc0688 于 2022-5-1 00:57 编辑

昨天我才刚意识到,显示缩放后图标间距异常问题,是跟pe有关,而非之前以为的是WinXShell命令的问题,(昨天专门在主贴上加了红字说明进行更正,以免误导他人)。这样的话,调用WinXShell进行显示缩放本身就没有问题!加上几个大佬也说我搞这个没啥意义,目前pe自适应缩放已经可以用(比如昨天说的wepe启动后都能自动缩放150%),所以我昨天已经放弃再折腾这个自适应+手动缩放事情了,而且也把折腾一半的PE、还有资料都清空了,把加了自动缩放的pe也改回重发了。

今天还有点不死心,晚上专门装了虚拟机进行测试,测试发现(用的wepe2.22)在虚拟机下不能自动缩放,反倒是我的方式,完美实现缩放(测试截图我有发群里);

1、至少说明,我采用的自适应缩放方案,更容易实现;

2、pe内采用注册表方式实现缩放,还是会受不同显示环境影响,当然也可能跟ISO有关,这个我还不太懂;

3、本人一直未弄明白的是,注册表实现缩放,到底是根据不同显示器进行不同比例缩放,还是只固定缩放150%,(我个人认为是固定150%);

4、至于有的PE缩放后,刷新资源管理器会出现间距异常问题,这个还是一个需要面对的问题,搞不清原理,就不确定哪些pe可以套用缩放,方法也就不能实现通用性;

5、目前已经可以明确的是:调用WinXShell命令、调用外部setdpi命令、调用微软API接口,三种方式都可以实现实时缩放,这方面应该确实不用再瞎折腾;

6、如果有必要探讨,那我觉得目前主要是探讨pe启动后的自适应缩放问题:注册表方式是否完美?通过pecmd、微软API检测是否就能适合不同显示环境?这方面只能靠技术大佬们来分析判断实现了;




点评

图标间距异常因为图标组没有合适的尺寸  详情 回复 发表于 2022-5-2 18:34
1、从我的pe问题反馈信息来说,注册表Win8DpiScaling=0,dpi是能够自适应的(以实机为准)。特别是外壳以原始分辨率启动后,估计不会再有这方面的问题反馈了。 增加  详情 回复 发表于 2022-5-1 07:03
回复

使用道具 举报

112#
发表于 2022-5-1 07:03:43 来自手机 | 只看该作者
本帖最后由 2013koko 于 2022-5-1 07:34 编辑
lhc0688 发表于 2022-5-1 00:54
昨天我才刚意识到,显示缩放后图标间距异常问题,是跟pe有关,而非之前以为的是WinXShell命令的问题,(昨 ...

1、从我的pe问题反馈信息来说,注册表Win8DpiScaling=0,dpi是能够自适应的(以实机为准),因为并没有收到分辨率很大而字体很小的反馈。特别是外壳以原始分辨率启动后,估计不会再有这方面的问题反馈了。
2、因视力差别原因,添加dpi缩放功能还是有需求的。

点评

通过学习,已经弄明白: Win8DpiScaling 应该是自动、手动缩放切换,0为自动,1为手动;当等于1时,须同时再指明参数LogPixels值,即缩放比例值,比如96是100%,144是150%; 但不明白的是:Win8DpiScaling=0时,  详情 回复 发表于 2022-5-1 08:28
回复

使用道具 举报

113#
 楼主| 发表于 2022-5-1 08:28:59 | 只看该作者
本帖最后由 lhc0688 于 2022-5-1 08:37 编辑
2013koko 发表于 2022-5-1 07:03
1、从我的pe问题反馈信息来说,注册表Win8DpiScaling=0,dpi是能够自适应的(以实机为准),因为并没有收到 ...

通过学习,已经弄明白:
Win8DpiScaling 应该是自动、手动缩放切换,0为自动,1为手动;当等于1时,须同时再指明参数LogPixels值,即缩放比例值,比如96是100%,144是150%;

尚不太明白的是:Win8DpiScaling=0时,跟显示字体相关的几个LogPixels值,注册表里是144,这个是不是实际显示的字体大小?还是说Win8DpiScaling=0时,这些LogPixels值不再起作用?从逻辑上讲,应该是不起作用,只在=1时起作用;

问题是:如果Win8DpiScaling=0系统自动缩放,那为何虚拟机高分辨率下(2k),不缩放?难道是未能正常识别分辨率?那为何pecmd的disp命令却能检测到正确分辨率?



点评

这样的话,问题就简单了:就是系统缩放兼容性如何,是否需要另外再用代码检测判断缩放一次;  发表于 2022-5-1 09:30
LogPixels值系统原生设置在software注册表fontdpi下是90(100%),但实际会随不同设备的自动变更,也就是自适应。 你挂载software看一下,然后在实机启动对比一下就清楚了。  详情 回复 发表于 2022-5-1 08:48
回复

使用道具 举报

114#
发表于 2022-5-1 08:48:21 来自手机 | 只看该作者
本帖最后由 2013koko 于 2022-5-1 09:31 编辑
lhc0688 发表于 2022-5-1 08:28
通过学习,已经弄明白:
Win8DpiScaling 应该是自动、手动缩放切换,0为自动,1为手动;当等于1时,须同 ...

LogPixels值系统原生设置在software注册表fontdpi下是60(100%),但实际会随不同设备的自动变更,也就是自适应。比如我的1920分辨率的,进系统后这个值就自动变更为90
你挂载software看一下原始值,然后在实机启动对比一下就清楚了。Win8DpiScaling不是切换,0值就是自适应。

点评

用你的pe又挂载看了下,确实是96,看来是我搞错了,可能之前查找值时候没看清,检索的是实机注册表;  详情 回复 发表于 2022-5-1 09:27
回复

使用道具 举报

115#
发表于 2022-5-1 09:02:52 | 只看该作者
支持一波
回复

使用道具 举报

116#
 楼主| 发表于 2022-5-1 09:15:20 | 只看该作者
还有,调用WinXShell命令、调用外部setdpi命令、或其它工具,实质上应该都是用的微软API接口,应该效果是一样的;
回复

使用道具 举报

117#
 楼主| 发表于 2022-5-1 09:27:32 | 只看该作者
2013koko 发表于 2022-5-1 08:48
LogPixels值系统原生设置在software注册表fontdpi下是60,但实际会随不同设备的自动变更,也就是自适应。 ...

用你的pe又挂载看了下,确实是96,看来是我搞错了,可能之前查找值时候没看清,检索的是实机注册表;

点评

其实你可以自己改的,不过我也改了其它地方:右键增加到16个,缩放比如果跟当前相同,就不再设置,免得点一下闪一下,难受  详情 回复 发表于 2022-5-1 23:42
回复

使用道具 举报

118#
 楼主| 发表于 2022-5-1 09:40:12 | 只看该作者
现在看来,这个帖子从头到尾罗里吧嗦这么多,确实是因为自己没搞明白;

归纳到最后,就是一个问题:系统自适应缩放是否够用?有没必要再用代码检测一次分辨率再进行缩放一次?

我觉得还是有必要:

1、目前看,系统缩放未能在不同环境下都有效;
2、手写代码检测缩放可以用自己思路,加入更复杂的判断,缩放可以做的更匹配一些;

点评

我觉得可以不用重新检测,毕竟多数dpi都是正常的。但右键调整功能也是必要的,可以帮到有需求的用户。 楼主追求完美的精神与我相似,只是观注点不同。赞一个!  详情 回复 发表于 2022-5-1 10:16
回复

使用道具 举报

119#
发表于 2022-5-1 10:16:42 来自手机 | 只看该作者
lhc0688 发表于 2022-5-1 09:40
现在看来,这个帖子从头到尾罗里吧嗦这么多,确实是因为自己没搞明白;

归纳到最后,就是一个问题:系统 ...

我觉得可以不用重新检测,毕竟多数dpi都是正常的。但右键调整功能也是必要的,可以帮到有需求的用户。
楼主追求完美的精神与我相似,只是观注点不同。赞一个!
回复

使用道具 举报

120#
发表于 2022-5-1 14:50:16 | 只看该作者
谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-23 14:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表