无忧启动论坛

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

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

    [复制链接]
1#
发表于 2022-4-26 15:09:39 | 显示全部楼层
说到这里不得不说一下显示器的PPI参数了。这里做过详细分析,USM的Win10&11pe很早就适配了。
https://www.sysceo.com/forum/thread-44479-1-1.html

因为你不可能去把一台100寸的4K显示器还拉伸DPI

点评

感谢樱木老大提醒。不过我的想法是在一般应用场合下,90%以上使用者显示器应该都是常见的标准,少数非常见标准显示器使用者,一般也会是比较爱折腾的技术玩家,能自己掌握、解决复杂问题; 而且,PE下的显示条件  详情 回复 发表于 2022-4-26 15:42
回复

使用道具 举报

2#
发表于 2022-4-26 16:29:27 | 显示全部楼层
lhc0688 发表于 2022-4-26 15:56
我关注这个DPI缩放问题已经很久,差不多十几年前,开始使用高分屏,就一直被这个问题困扰。测试过很多PE, ...

这问题很早USM就解决了,解决了好几年了。

点评

谢谢老大指出,很惭愧了解不够,回头再多看下。  发表于 2022-4-26 16:46
回复

使用道具 举报

3#
发表于 2022-4-29 15:09:19 | 显示全部楼层
本帖最后由 红毛樱木 于 2022-5-1 20:49 编辑
  1. ENVI^ EnviMode=1
  2. ENVI &&SPI_GETLOGICALDPIOVERRIDE=0x009E //158
  3. ENVI$# &&pvParam=*4 0
  4. CALL $--bool --qd --ret:&&SystemParametersInfoWRet user32.dll,SystemParametersInfoW,#%&SPI_GETLOGICALDPIOVERRIDE%,#0,*&pvParam,#1
  5. ENVI?ints &pvParam=&&vParam
  6. MESS. %&SystemParametersInfoWRet%<%&vParam%>
复制代码


其中 %&vParam% 为当前系统默认DPI拉伸值与100%对应关系。
假设如果你获取到的值是-2,那么这个-2就对应100%

点评

请问大师,代码:CALL $--bool --qd --ret:&Ret user32.dll,SystemParametersInfo,#158,0,*&pvParam,1获取DPI值正常,但设置DPI值:CALL $--qd# user32.dll,SystemParametersInfoW,159,%&DPI0%,0,1会出现 [CALL $--  详情 回复 发表于 2022-9-13 09:46
按此理解,0 值就是系统推荐缩放值,对吧?  发表于 2022-4-29 16:01
大师们就是不一样,出手就搞定。  发表于 2022-4-29 16:00
回复

使用道具 举报

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

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

点评

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

使用道具 举报

5#
发表于 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
回复

使用道具 举报

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

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

点评

已经超出了我的理解能力,投降  详情 回复 发表于 2022-5-22 15:22
回复

使用道具 举报

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

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

使用道具 举报

8#
发表于 2022-5-22 22:50:16 来自手机 | 显示全部楼层
527104427 发表于 2022-5-22 20:01
跟踪了一下注册表,发现端倪,真的有对应的位置!



和显示器有关,你弄一个27寸4k屏试试就知道了
回复

使用道具 举报

9#
发表于 2022-5-24 19:58:50 来自手机 | 显示全部楼层
精简版的win7/8pe咋个注销法?几年前就想注销,一直没找到方法

点评

只要支持切换到admin,切换以后就可以直接注销。但在system注销无效  详情 回复 发表于 2022-5-24 21:35
回复

使用道具 举报

10#
发表于 2022-5-25 22:58:09 来自手机 | 显示全部楼层
527104427 发表于 2022-5-25 21:47
不玩了,最后再憋个大招:

根据szwp
提供的网址研究了一下,发现系统早就为我们算好了 ...

传0进去,就是推荐值,始终如一,我前面翻译api的时候就说过
回复

使用道具 举报

11#
发表于 2022-9-14 16:44:57 | 显示全部楼层
gbzx 发表于 2022-9-13 09:46
请问大师,代码:CALL $--bool --qd --ret:&Ret user32.dll,SystemParametersInfo,#158,0,*&pvParam,1获 ...

[CALL $--qd# user32.dll,SystemParametersInfoW,159,,0,1]        <1>        :函数不正确

日志里反应出来了吧,第二个参数空了没传进去

点评

我是套用作者Bluebells 69楼的代码,再参考你的说明,用后发现69楼的代码二处要改,第一是注册表项分隔符\\要改成\才会有桌面右键,第二是设置DPI时少了一个参数--bool,没这个参数就会出现“函数不正确”。 改后的  详情 回复 发表于 2022-9-14 21:36
回复

使用道具 举报

12#
发表于 2022-9-15 16:54:05 | 显示全部楼层
gbzx 发表于 2022-9-14 21:36
我是套用作者Bluebells 69楼的代码,再参考你的说明,用后发现69楼的代码二处要改,第一是注册表项分隔符 ...

你这里的显示都没问题了呀。
1是SystemParametersInfoW的返回值

https://docs.microsoft.com/en-us ... stemparametersinfow
Return value
Type: BOOL
If the function succeeds, the return value is a nonzero value.
If the function fails, the return value is zero. To get extended error information, call [color=var(--theme-hyperlink)]GetLastError.

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-8 03:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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