找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: lhc0688

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

   火... [复制链接]
 楼主| 发表于 2022-5-2 22:48:45 | 显示全部楼层
我对比了wepe跟koko两个pe内的cofing文件夹,后者DEFAULT、SYSTEM两个注册表精简幅度都很大,感觉之问题真可能是出在注册表过度精简上了,前面有坛友说过这个问题,我还反驳过。
回复

使用道具 举报

发表于 2022-5-2 22:49:05 | 显示全部楼层
本帖最后由 泮安宁 于 2022-5-2 22:55 编辑
lhc0688 发表于 2022-5-2 22:44
对比了整个WindowsMetrics项,没发现问题, Shell Icon Size值缩放前后都是32,也没发现问题;

是应用图标组,假如这个应用图标只有一个尺寸,那么缩放就会显示出问题,系统图标自然是在系统的dll资源里,第三方软件,可用RH查看有几个尺寸 捕获_1.PNG
比如这个应用,有这么多尺寸,不同的缩放会用不同的尺寸显示
回复

使用道具 举报

发表于 2022-5-2 23:05:21 | 显示全部楼层
用的工具软件也一致
————————————————
“用的工具软件也一致”什么意思,同一个文件在两个PE中缩放有不同的效果吗,如果是的话,我也不知道什么原因,至少在我电脑上,间距不正常是图标组的原因,增加了一些尺寸就正常了,你可以把图标提取出来增加尺寸再替换进去试一下,图标编辑我用的Axialis IconWorkshop
回复

使用道具 举报

 楼主| 发表于 2022-5-2 23:18:09 | 显示全部楼层
你可以把图标提取出来增加尺寸再替换进去试一下
--------------
这确实是一直测试办法,不过要花点时间改下,回头试试;但同样的图标,在不同pe下出现异常,一定还跟其它项有关,比如检测图标组并对应显示的项。
回复

使用道具 举报

 楼主| 发表于 2022-5-3 11:23:06 | 显示全部楼层
本帖最后由 lhc0688 于 2022-5-3 14:07 编辑

用527104427大师的代码(第一版),能正常自适应缩放,后面两版好像都是按100%缩放了,不知道是什么原因?
setdpi.wcs(第一版).7z (819 Bytes, 下载次数: 24)
setdpi.wcs(第三版).7z (1.68 KB, 下载次数: 22)
回复

使用道具 举报

 楼主| 发表于 2022-5-3 11:32:35 | 显示全部楼层
Bluebells 发表于 2022-5-2 15:33
1. 上下文菜单分隔线的添加, 使用注册表项值 SeparatorBefore 或 SeparatorAfter, 其数据类型为 REG_DWOR ...

刚实际测试了下,使用 ENVI @@DeskTopFresh=1 好像只能刷新桌面,不能刷新图标,(缩放后桌面图标会出现大小不一情况);
回复

使用道具 举报

 楼主| 发表于 2022-5-3 12:55:44 | 显示全部楼层
Bluebells 发表于 2022-5-2 15:33
1. 上下文菜单分隔线的添加, 使用注册表项值 SeparatorBefore 或 SeparatorAfter, 其数据类型为 REG_DWOR ...

根据Bluebells朋友的指点,确实解决了选项分组线的问题。但又遇到新问题,选项的位置总是不能按自己想法指定(跑到某选项中间了),如下:
sshot-1.jpg

这个不是因为菜单项生成先后顺序的问题,而且注册表里也不能手动改变位置。经过多番测试,最终发现竟然是排序的问题!而且按字母、符号直接排序好像也不行,必须按数字顺序就可以,实际效果截图如下:

sshot-2.jpg

这样的话,这个菜单右键相关问题基本算圆满解决了。

点评

这个显示100%怎么跟下面几组分辨率没有对齐,好像出头了一个空格  详情 回复 发表于 2022-5-5 13:37
楼主这个帖子解决了大家困扰许久的问题,感谢此贴所有付出贡献的朋友们! 首页壁纸、右键重启关机注册表能不能也分享一下,再次感谢!  详情 回复 发表于 2022-5-5 12:59
晕,我一直认为是按显示的字符排序的,结果是按注册项排序的  详情 回复 发表于 2022-5-3 14:21
回复

使用道具 举报

发表于 2022-5-3 14:21:14 | 显示全部楼层
lhc0688 发表于 2022-5-3 12:55
根据Bluebells朋友的指点,确实解决了选项分组线的问题。但又遇到新问题,选项的位置总是不能按自己想法 ...

晕,我一直认为是按显示的字符排序的,结果是按注册项排序的
回复

使用道具 举报

发表于 2022-5-5 12:59:53 | 显示全部楼层
lhc0688 发表于 2022-5-3 12:55
根据Bluebells朋友的指点,确实解决了选项分组线的问题。但又遇到新问题,选项的位置总是不能按自己想法 ...

楼主这个帖子解决了大家困扰许久的问题,感谢此贴所有付出贡献的朋友们!

首页壁纸、右键重启关机注册表能不能也分享一下,再次感谢!

点评

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=429679&page=7#pid4557907 190#楼 ;===============以下为右键菜单优化============= ; [HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersi  详情 回复 发表于 2022-5-5 13:04
回复

使用道具 举报

 楼主| 发表于 2022-5-5 13:04:48 | 显示全部楼层
nfans 发表于 2022-5-5 12:59
楼主这个帖子解决了大家困扰许久的问题,感谢此贴所有付出贡献的朋友们!

首页壁纸、右键重启关机注册 ...

http://bbs.wuyou.net/forum.php?m ... 9&page=7#pid4557907

190#楼

;===============以下为右键菜单优化=============
;
[HKEY_CLASSES_ROOT\DesktopBackground\Shell\2.shutdown]
@="关机"
"Icon"="shell32.dll,27"
"Position"="bottom"
[HKEY_CLASSES_ROOT\DesktopBackground\Shell\2.shutdown\command]
@="pecmd shut"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\2.shutdown]
@="关机"
"Icon"="shell32.dll,27"
"Position"="bottom"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\2.shutdown\command]
@="pecmd shut"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\3.restart]
@="重启"
"Icon"="shell32.dll,146"
"Position"="bottom"
[HKEY_CLASSES_ROOT\DesktopBackground\Shell\3.restart\command]
@="pecmd shut -r"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\3.restart]
@="重启"
"Icon"="shell32.dll,146"
"Position"="bottom"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\3.restart\command]
@="pecmd shut -r"
;

点评

想要的是这张:  详情 回复 发表于 2022-5-5 13:30
回复

使用道具 举报

发表于 2022-5-5 13:30:15 | 显示全部楼层
lhc0688 发表于 2022-5-5 13:04
http://bbs.wuyou.net/forum.php?m ... 9&page=7#pid4557907

190#楼

想要的是这张:
回复

使用道具 举报

发表于 2022-5-5 13:37:32 来自手机 | 显示全部楼层
lhc0688 发表于 2022-5-3 12:55
根据Bluebells朋友的指点,确实解决了选项分组线的问题。但又遇到新问题,选项的位置总是不能按自己想法 ...

这个显示100%怎么跟下面几组分辨率没有对齐,好像出头了一个空格
回复

使用道具 举报

发表于 2022-5-17 14:41:01 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

发表于 2022-5-20 19:49:04 | 显示全部楼层
按69楼的代码在PE中试了下,Win10/11能够正常改变,win7/8/8.1似乎无效
dpi11-300.PNG
回复

使用道具 举报

发表于 2022-5-20 23:38:21 | 显示全部楼层
527104427 发表于 2022-5-20 20:08
用126#的试试,支持的系统才会出右键

刚才在win7正常系统中试了下126#的,确实不行。我把你的程序修改了一下,请斧正: setdpi.7z (1.93 KB, 下载次数: 15)
回复

使用道具 举报

发表于 2022-5-20 23:44:40 | 显示全部楼层
527104427 发表于 2022-5-20 20:08
用126#的试试,支持的系统才会出右键

另外,完美一点就是让当前选定的选项显示一个选定的图标,其他不显示。希望能完美一下。我自己对PECMD不熟,还在学习消化你的代码。
回复

使用道具 举报

发表于 2022-5-21 23:13:00 | 显示全部楼层
527104427 发表于 2022-5-21 20:34
改好了,不过,发现这种方法有局限性,顶多只能设置到175%,再大就只能手动设置了(设置后还要注销 ...

白天在外面,晚上回来没看你的回复,就按我自己的思路做了一个: setdpi.7z (2.07 KB, 下载次数: 13)
看到你也做了一个,我再参考你这个学习一下。
晚上一直在调试,确实,再往上放大就不起作用了。
回复

使用道具 举报

发表于 2022-5-22 08:25:00 | 显示全部楼层
本帖最后由 hhh333 于 2022-5-22 09:19 编辑
527104427 发表于 2022-5-21 20:34
改好了,不过,发现这种方法有局限性,顶多只能设置到175%,再大就只能手动设置了(设置后还要注销 ...

参考你的程序,按我的想法做好了: setdpi.7z (2.45 KB, 下载次数: 30)
1、改变以91代替方式,直接不足两位在前面补0的方式,更好理解,显示顺序也不会乱;
2、选定进行过的设定都会有图标标志(自动也不例外);
3、因为上述1的逻辑,设定图标直接按顺序对应方式,不再采用读command再提取DPI的方式;
4、采用你的第一次注册顺便标注当前DPI的方式;

学习了REGI的使用方式等等。还有好多不大懂,还在消化。你和红毛等玩PECMD太高深了,好多语句看不懂。
效果大致如下:
dpi11-200.PNG

回复

使用道具 举报

发表于 2022-5-22 12:21:26 | 显示全部楼层
527104427 发表于 2022-5-22 12:11
发现规律了,设置175%以上时,不管设置的多少,最后都是这个框里的结果。
如果能通过注册表改这里的 ...

和显示器有关,有一定范围。
显示器有个PPI值,和PPI相差太大就会恢复成“最大值”。暂时这个最大值 不知道什么方法获取,应该可以通过计算获得

点评

意思: 1、显示器有一个最大的PPI,超过这个都按这个执行; 2、各显示器的最大PPI可能会有不同;  详情 回复 发表于 2022-5-22 13:10
回复

使用道具 举报

发表于 2022-5-22 13:10:34 | 显示全部楼层
红毛樱木 发表于 2022-5-22 12:21
和显示器有关,有一定范围。
显示器有个PPI值,和PPI相差太大就会恢复成“最大值”。暂时这个最大值 不 ...

意思:
1、显示器有一个最大的PPI,超过这个都按这个执行;
2、各显示器的最大PPI可能会有不同;

点评

Windows系统里的是DPI。 显示器参数里的是PPI,是不变的。 看下面我很早之前的研究资料,也许能有帮助,不过当时技术有限解析的还不够透彻 https://www.sysceo.com/forum/thread-44479-1-1.html  详情 回复 发表于 2022-5-22 13:15
回复

使用道具 举报

发表于 2022-5-22 13:15:41 | 显示全部楼层
hhh333 发表于 2022-5-22 13:10
意思:
1、显示器有一个最大的PPI,超过这个都按这个执行;
2、各显示器的最大PPI可能会有不同;

Windows系统里的是DPI。
显示器参数里的是PPI,是不变的。
看下面我很早之前的研究资料,也许能有帮助,不过当时技术有限解析的还不够透彻
https://www.sysceo.com/forum/thread-44479-1-1.html

点评

看懂了一点点,如果显示器的尺寸越大,在相同物理面积上显示的点就越多,也即PPI就更大,缩放的空间就更大。 那么是不是可以说,可以根据最大的显示尺寸来设定最大的缩放倍数?  详情 回复 发表于 2022-5-22 13:27
回复

使用道具 举报

发表于 2022-5-22 13:27:01 | 显示全部楼层
红毛樱木 发表于 2022-5-22 13:15
Windows系统里的是DPI。
显示器参数里的是PPI,是不变的。
看下面我很早之前的研究资料,也许能有帮助 ...

看懂了一点点,如果显示器的尺寸越大,在相同物理面积上显示的点就越多,也即PPI就更大,缩放的空间就更大。
那么是不是可以说,可以根据最大的显示尺寸来设定最大的缩放倍数?

点评

PPI是计算的,不单单显示器尺寸越大PPI就越大,还要看分辨率。  详情 回复 发表于 2022-5-22 13:55
回复

使用道具 举报

发表于 2022-5-22 13:48:55 | 显示全部楼层
PPI是单位长度(每英吋)的像素值,DPI是单位长度(每英吋)的点数,似乎没啥子区别。越高越能够显示细节,也越经得起放大。
回复

使用道具 举报

发表于 2022-5-22 13:55:42 | 显示全部楼层
hhh333 发表于 2022-5-22 13:27
看懂了一点点,如果显示器的尺寸越大,在相同物理面积上显示的点就越多,也即PPI就更大,缩放的空间就更 ...

PPI是计算的,不单单显示器尺寸越大PPI就越大,还要看分辨率。
回复

使用道具 举报

发表于 2022-5-22 15:35:33 | 显示全部楼层
527104427 发表于 2022-5-22 15:22
已经超出了我的理解能力,投降

只差一步,坚持一下就行了。

点评

这不是差一步,这是差很多步  详情 回复 发表于 2022-5-22 18:28
回复

使用道具 举报

发表于 2022-5-22 17:38:22 | 显示全部楼层
本帖最后由 2011whp 于 2022-5-24 19:39 编辑

我现在这么理解dpi放大:
dpi放大.jpg

假如:window限定 : 虚拟的 厘米 数 小到  25.4时,连 资源管理器,也没法布局了,
          所以,干脆不放大,用显示器的ppi

点评

问题关键在于不是所有PE都能正确获取显示器大小  详情 回复 发表于 2022-5-22 18:26
回复

使用道具 举报

发表于 2022-5-22 18:26:57 | 显示全部楼层
2011whp 发表于 2022-5-22 17:38
我现在这么理解dpi放大:

问题关键在于不是所有PE都能正确获取显示器大小
回复

使用道具 举报

发表于 2022-5-22 18:28:50 | 显示全部楼层
szwp 发表于 2022-5-22 15:35
只差一步,坚持一下就行了。

这不是差一步,这是差很多步

点评

路越走越宽,小目标慢慢变成大目标。 https://github.com/lihas/windows-DPI-scaling-sample 这个软件可试下,里面有个列表显示当前支持哪几种DPI,看看是否正确。开源的,可套用到pecmd,俺pecmd基础差一时补  详情 回复 发表于 2022-5-23 08:14
回复

使用道具 举报

发表于 2022-5-22 18:50:10 来自手机 | 显示全部楼层
527104427 发表于 2022-5-22 15:22
已经超出了我的理解能力,投降

其实不用管,新系统/pe能识别显示器参数后会自动拉伸的
回复

使用道具 举报

发表于 2022-5-22 20:11:32 | 显示全部楼层
527104427 发表于 2022-5-22 20:01
跟踪了一下注册表,发现端倪,真的有对应的位置!

获取离线系统dpi,应用到PE
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-20 12:18

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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