无忧启动论坛

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

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

    [复制链接]
61#
 楼主| 发表于 2022-4-29 06:50:32 | 只看该作者
HIGHQ 发表于 2022-4-29 01:36
附上使用的Win10PE64的ISO壳(不含WEPE64.WIM), 参考看看...

看了下,wepe这个BCD中启用了GraphicsForceHighestMode参数项,BCD中做了两个引导项:原始分辨率引导,和1024*768分辨率引导;你方便的话,看下是那种引导下正常?(估计应该是原始模式的):

捕获2.JPG (102.09 KB, 下载次数: 100)

捕获2.JPG
回复

使用道具 举报

62#
 楼主| 发表于 2022-4-29 06:56:00 | 只看该作者
HIGHQ 发表于 2022-4-28 19:25
使用版大提供的资源, 修改本人常用 Win10PE (x64), Win11PE (x64), 进行实机测试,
基本上台式机都没有问题 ...

这个估计也是BCD的问题,GraphicsForceHighestMode参数设置为:800*600 了
回复

使用道具 举报

63#
 楼主| 发表于 2022-4-29 07:31:48 | 只看该作者
HIGHQ 发表于 2022-4-28 19:25
使用版大提供的资源, 修改本人常用 Win10PE (x64), Win11PE (x64), 进行实机测试,
基本上台式机都没有问题 ...

做了一个带GraphicsForceHighestMode参数的ISO外壳,方便的话你再试试看:
ISO - 标准-去掉字库.rar (894.82 KB, 下载次数: 30)

点评

经版大指点, 我已修改BCD, 测试没问题, 再比对提供的ISO外壳, 内容几乎一致, 问题解决了, 非常感谢...  详情 回复 发表于 2022-4-29 08:05
回复

使用道具 举报

64#
发表于 2022-4-29 08:05:48 | 只看该作者
lhc0688 发表于 2022-4-29 07:31
做了一个带GraphicsForceHighestMode参数的ISO外壳,方便的话你再试试看:

经版大指点, 我已修改BCD, 测试没问题, 再比对提供的ISO外壳, 内容几乎一致, 问题解决了, 非常感谢...

点评

好的,感谢反馈!  发表于 2022-4-29 08:07
回复

使用道具 举报

65#
发表于 2022-4-29 08:31:47 来自手机 | 只看该作者
喜欢这种探讨技术的帖子,内容也很实用。我用2013koko的作品就遇到分辨率问题,大佬说让我自己更新显卡驱动,但pe用了两个软件更新驱动失败.这个显卡驱动就是在我单位这个显示器显示不全。

点评

你使用新外壳是否解决问题了? 若有效我也抄一下  详情 回复 发表于 2022-4-29 10:34
可以用今天更新的维护版试一下,估计跟ISO参数设置有关。  发表于 2022-4-29 08:35
回复

使用道具 举报

66#
发表于 2022-4-29 09:28:45 | 只看该作者
版大, 请教个微PE的问题, 如下图所示, 微PE的 控制面板-字体 功能被禁用,
造成应用程序字体无法显示(本人外挂了RocketDock苹果仿真工作列),
我试过论坛中其他几个PE没有问题, 但总觉得微PE蛮稳定的, 所以没想换PE,
这个问题可以在微PE启动时汇入登录档解决吗?

SShot-1.jpg (102.96 KB, 下载次数: 117)

SShot-1.jpg

点评

这个我还不太清楚,这个微PE我没用过。  发表于 2022-4-29 10:32
回复

使用道具 举报

67#
发表于 2022-4-29 10:34:21 来自手机 | 只看该作者
wsdyleon 发表于 2022-4-29 08:31
喜欢这种探讨技术的帖子,内容也很实用。我用2013koko的作品就遇到分辨率问题,大佬说让我自己更新显卡驱动 ...

你使用新外壳是否解决问题了?
若有效我也抄一下

点评

OK, 問題解決了...  详情 回复 发表于 2022-4-29 11:42
测试了下,应该是驱动问题,使用本帖楼主的版本(维护班)的几个缩放比例,仍然显示没有变化。 但是默认的分辨率在我的这台电脑上正常。 但大佬你的那个作品默认显示比例看不到底部。是哪个版本默认dpi原因吗?  详情 回复 发表于 2022-4-29 10:51
回复

使用道具 举报

68#
发表于 2022-4-29 10:51:32 | 只看该作者
2013koko 发表于 2022-4-29 10:34
你使用新外壳是否解决问题了?
若有效我也抄一下

测试了下,应该是驱动问题,使用本帖楼主的版本(维护班)的几个缩放比例,仍然显示没有变化。
但是默认的分辨率在我的这台电脑上正常。
但大佬你的那个作品默认显示比例看不到底部。是哪个版本默认dpi原因吗?
大佬的体积我还是比较喜欢的。
我个人不喜欢太多驱动的,太多功能的。
能进行常规维护操作即可。没有网络的话遇到特殊情况不方便。

点评

重设分辨率需要显示驱动支持,调整DPI缩放不需要显示驱动支持。  发表于 2022-4-29 10:59
对的,我没有换外壳。为了省事我直接替换的wim。我再测试下iso实际效果。  详情 回复 发表于 2022-4-29 10:57
缩放只是改变DPI值,不会改分辨率值,比如显示器分辨率是1080的,缩放按150%,1080值没变;  发表于 2022-4-29 10:57
如果进PE后默认分辨率为800*600,这不是显示缩放的问题,应该还是ISO启动参数问题,未能按原始分辨率启动;不是测试缩放,是要换ISO外壳试下。  发表于 2022-4-29 10:55
回复

使用道具 举报

69#
发表于 2022-4-29 10:56:49 | 只看该作者
本帖最后由 Bluebells 于 2022-4-30 21:12 编辑

更改为 PECMD 的自定义子函数
  1. _SUB SetDPI
  2.     ENVI$# &pvParam=*4 0
  3.     CALL $--bool --qd --ret:&SystemParametersInfoWRet user32.dll,SystemParametersInfoW,#158,0,*&pvParam,1
  4.     FIND $%~1=AutoDPI,TEAM CALL $--qd# user32.dll,SystemParametersInfoW,159,%&SystemParametersInfoWRet%,0,1| ENVI @@DeskTopFresh=1 //自动设置为系统推荐的缩放比例
  5.     //注册右键上下文菜单
  6.     ENVI?ints &pvParam=&DPI0
  7.     TEAM CALC #&DPI1=%&DPI0%+1| CALC #&DPI2=%&DPI0%+2| CALC #&DPI3=%&DPI0%+3| CALC #&DPI4=%&DPI0%+4| CALC #&DPI5=%&DPI0%+5| CALC #&DPI6=%&DPI0%+6| CALC #&DPI7=%&DPI0%+7
  8.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\SubCommands=
  9.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\MUIVerb=设置显示比例(&Z)
  10.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\Position=Bottom
  11.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor0\\MUIVerb=缩放比例 100%%
  12.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor0\command\\=PECMD.EXE TEAM CALL $--qd# user32.dll,SystemParametersInfoW,159,%&DPI0%,0,1| ENVI @@DeskTopFresh=1
  13.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor1\\MUIVerb=缩放比例 125%%
  14.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor1\command\\=PECMD.EXE TEAM CALL $--qd# user32.dll,SystemParametersInfoW,159,%&DPI1%,0,1| ENVI @@DeskTopFresh=1
  15.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor2\\MUIVerb=缩放比例 150%%
  16.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor2\command\\=PECMD.EXE TEAM CALL $--qd# user32.dll,SystemParametersInfoW,159,%&DPI2%,0,1| ENVI @@DeskTopFresh=1
  17.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor3\\MUIVerb=缩放比例 175%%
  18.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor3\command\\=PECMD.EXE TEAM CALL $--qd# user32.dll,SystemParametersInfoW,159,%&DPI3%,0,1| ENVI @@DeskTopFresh=1
  19.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor4\\MUIVerb=缩放比例 200%%
  20.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor4\command\\=PECMD.EXE TEAM CALL $--qd# user32.dll,SystemParametersInfoW,159,%&DPI4%,0,1| ENVI @@DeskTopFresh=1
  21.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor5\\MUIVerb=缩放比例 225%%
  22.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor5\command\\=PECMD.EXE TEAM CALL $--qd# user32.dll,SystemParametersInfoW,159,%&DPI5%,0,1| ENVI @@DeskTopFresh=1
  23.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor6\\MUIVerb=缩放比例 250%%
  24.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor6\command\\=PECMD.EXE TEAM CALL $--qd# user32.dll,SystemParametersInfoW,159,%&DPI6%,0,1| ENVI @@DeskTopFresh=1
  25.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor7\\MUIVerb=缩放比例 300%%
  26.     REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor7\command\\=PECMD.EXE TEAM CALL $--qd# user32.dll,SystemParametersInfoW,159,%&DPI7%,0,1| ENVI @@DeskTopFresh=1
  27. _END
复制代码

仅依赖 PECMD 外部工具, 感谢 szwp 提供使用 PECMD 更改 DPI 的代码, 红毛樱木 提供判断系统推荐值和 100% 缩放比例值~
PS: 未进行完整测试!!!

点评

本注册表只需要pecmd支持,无需其它vc,实机测试有效,赞!  详情 回复 发表于 2022-4-30 14:01
https://www.codenong.com/35233182/ 牵涉的东西比较多,这个API不是直接指定100,125,150,175,200  详情 回复 发表于 2022-4-29 12:43
这个调用API接口参数一直就没搞明白:159放大一级到底是多少?150%到175%是一级吗?那有没可能160%呢?200%到300%应该是多少级呢?  发表于 2022-4-29 12:10
少了个300%的参数,应该是401,还是701呢?  发表于 2022-4-29 11:46
这个我也问过szwp大师,他不肯直接教参数写法,这次能完整放出确实很难得,可以不用调外部命令实现缩放,有多了一种实现方法,希望能有更多大师的神奇操作;  发表于 2022-4-29 11:41

评分

参与人数 1无忧币 +5 收起 理由
2013koko + 5 很给力!

查看全部评分

回复

使用道具 举报

70#
发表于 2022-4-29 10:57:15 | 只看该作者
wsdyleon 发表于 2022-4-29 10:51
测试了下,应该是驱动问题,使用本帖楼主的版本(维护班)的几个缩放比例,仍然显示没有变化。
但是默认 ...

对的,我没有换外壳。为了省事我直接替换的wim。我再测试下iso实际效果。

点评

我的意思,你用我的wim,加到楼主的iso后是否分辨率正常?因为分辨率800x600再调dpi是调不了的,就是100%  详情 回复 发表于 2022-4-29 11:02
回复

使用道具 举报

71#
发表于 2022-4-29 11:02:55 来自手机 | 只看该作者
wsdyleon 发表于 2022-4-29 10:57
对的,我没有换外壳。为了省事我直接替换的wim。我再测试下iso实际效果。

我的意思,你用我的wim,加到楼主的iso后是否分辨率正常?因为分辨率800x600再调dpi是调不了的,就是100%

点评

确实是这个问题。 我测试了下,用lhc0688的壳子,2013koko的wim,分辨率不再是800*600了。 当然设置分辨率功能,依然不能用。个人觉得,这个功能没啥作用,对于我来说能正常显示全就行了。 pe毕竟是临时的,能用  详情 回复 发表于 2022-4-29 11:48
回复

使用道具 举报

72#
 楼主| 发表于 2022-4-29 11:03:43 | 只看该作者
重设分辨率需要显示驱动支持,调整DPI缩放不需要显示驱动支持。
---------------
所以我一直认为,对于PE,调整缩放比例方式,比搞定分辨率更实用,也更容易实现。

点评

明白了。dpi是总体的大小,缩放。  详情 回复 发表于 2022-4-29 11:46
调整dpi事实上是与分辩率相关的,上限相关,1092的你调不到200%  详情 回复 发表于 2022-4-29 11:16
改变缩放比例唯一缺点就是:部分软件界面字体可能不够清晰,但PE目的是维护用,缺点可忽略。  发表于 2022-4-29 11:12
回复

使用道具 举报

73#
发表于 2022-4-29 11:13:02 来自手机 | 只看该作者
分辨率问题是在一些特殊机型上出现,我这边没有遇到寸\
回复

使用道具 举报

74#
发表于 2022-4-29 11:16:12 来自手机 | 只看该作者
lhc0688 发表于 2022-4-29 11:03
重设分辨率需要显示驱动支持,调整DPI缩放不需要显示驱动支持。
---------------
所以我一直认为,对于P ...

调整dpi事实上是与分辩率相关的,上限相关,1092的你调不到200%
回复

使用道具 举报

75#
发表于 2022-4-29 11:42:51 | 只看该作者
2013koko 发表于 2022-4-29 10:34
你使用新外壳是否解决问题了?
若有效我也抄一下

OK, 問題解決了...

点评

请帮忙测试下我修改的这个壳是否有问题,谢谢! https://www.123pan.com/s/CTv9-wQHQH  详情 回复 发表于 2022-4-29 14:23
回复

使用道具 举报

76#
发表于 2022-4-29 11:46:16 | 只看该作者
lhc0688 发表于 2022-4-29 11:03
重设分辨率需要显示驱动支持,调整DPI缩放不需要显示驱动支持。
---------------
所以我一直认为,对于P ...

明白了。dpi是总体的大小,缩放。
回复

使用道具 举报

77#
发表于 2022-4-29 11:48:25 | 只看该作者
2013koko 发表于 2022-4-29 11:02
我的意思,你用我的wim,加到楼主的iso后是否分辨率正常?因为分辨率800x600再调dpi是调不了的,就是100%

确实是这个问题。
我测试了下,用lhc0688的壳子,2013koko的wim,分辨率不再是800*600了。
当然设置分辨率功能,依然不能用。个人觉得,这个功能没啥作用,对于我来说能正常显示全就行了。
pe毕竟是临时的,能用就行。

点评

我这也跟风改了bcd,有空帮测一下,等你消息哟  详情 回复 发表于 2022-4-30 10:40
请帮忙测试下我改的这个壳,谢谢! https://www.123pan.com/s/CTv9-wQHQH  详情 回复 发表于 2022-4-29 14:22
ok,现在已确认是壳的问题,下次更新我换下壳  详情 回复 发表于 2022-4-29 11:57
所以我改PE时候,一般都会把 INIT I 这个关掉;这个wepe是因为没有自带USB弹出,所以才保留了 INIT IU; 只是用到USB设备弹出功能,显示分辨率设置除非显示驱动支持的电脑上才有用;  发表于 2022-4-29 11:53
重设分辨率需要显示驱动支持,调整DPI缩放不需要显示驱动支持。 --------------- 所以我一直认为,对于PE,调整缩放比例方式,比搞定分辨率更实用,也更容易实现。  详情 回复 发表于 2022-4-29 11:50
回复

使用道具 举报

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

重设分辨率需要显示驱动支持,调整DPI缩放不需要显示驱动支持。
---------------
所以我一直认为,对于PE,调整缩放比例方式,比搞定分辨率更实用,也更容易实现。
回复

使用道具 举报

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

ok,现在已确认是壳的问题,下次更新我换下壳
回复

使用道具 举报

80#
发表于 2022-4-29 12:17:53 | 只看该作者
pecmd.ini里如何写命令  麻烦发一下
回复

使用道具 举报

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

https://www.codenong.com/35233182/

牵涉的东西比较多,这个API不是直接指定100,125,150,175,200

点评

szwp大师总算冒泡了,估计实在看不过去我们在这里瞎折腾; 确实能感觉到牵扯东西太多,我们也看不懂,您就直接帮忙写个完整的得了,让我们也少绕点弯路。  详情 回复 发表于 2022-4-29 12:52
回复

使用道具 举报

82#
 楼主| 发表于 2022-4-29 12:52:39 | 只看该作者
szwp 发表于 2022-4-29 12:43
https://www.codenong.com/35233182/

牵涉的东西比较多,这个API不是直接指定100,125,150,175,200

szwp大师总算冒泡了,估计实在看不过去我们在这里瞎折腾;

确实能感觉到牵扯东西太多,我们也看不懂,您就直接帮忙写个完整的得了,让我们也少绕点弯路。

点评

100,125,150,175,200,225,250,300,350, 400, 450, 500 直到250%,步长以25%为单位增加,之后以50%为单位增加。 这些数据链接里有,CALL $--qd# user32.dll,SystemParametersInfoW,159,X,0,1 类推即可,pecm  详情 回复 发表于 2022-4-29 13:08
100到200应该是够用,但从技术探讨角度讲,以后也存在8k'屏可能,加上300%,是不是就更好些。  发表于 2022-4-29 12:55
回复

使用道具 举报

83#
 楼主| 发表于 2022-4-29 13:08:22 | 只看该作者
本帖最后由 lhc0688 于 2022-4-29 13:09 编辑

所有步骤的大小可能不相同。

1
100,125,150,175,200,225,250,300,350, 400, 450, 500
直到250%,步长以25%为单位增加,之后以50%为单位增加。

因此,必须首先通过SPI_GETLOGICALDPIOVERRIDE参数获得建议的DPI缩放比例的值,对于该比例,可以使用相同的API。

1
SystemParametersInfo(SPI_GETLOGICALDPIOVERRIDE, 0, (LPVOID)&dpi, 1);
上面的dpi变量中返回的值也应以特殊方式理解。
该值将为负,其大小将指示上面列表中DPI缩放百分比的指数。

因此,如果此API返回-1,则建议的DPI缩放比例值将为125%。
----------------------------


是不是可以这样理解:


1、调用这个API接口进行缩放,必须先获取Windows的推荐比例?

2、如果可以直接获取推荐比例,那是不是就不需要再进行检测判断,直接调用SPI_GETLOGICALDPIOVERRIDE参数获得建议的DPI缩放比例的值?


回复

使用道具 举报

84#
发表于 2022-4-29 13:08:40 | 只看该作者
lhc0688 发表于 2022-4-29 12:52
szwp大师总算冒泡了,估计实在看不过去我们在这里瞎折腾;

确实能感觉到牵扯东西太多,我们 ...

100,125,150,175,200,225,250,300,350, 400, 450, 500
直到250%,步长以25%为单位增加,之后以50%为单位增加。


这些数据链接里有,CALL $--qd# user32.dll,SystemParametersInfoW,159,X,0,1
类推即可,pecmd俺不熟,159是设置,158是获取。
回复

使用道具 举报

85#
 楼主| 发表于 2022-4-29 13:12:27 | 只看该作者
CALL $--qd# user32.dll,SystemParametersInfoW,158,X,0,1
----------------------
我瞎理解下:如果这样写,是不是就能返回当前分辨率的建议缩放值呢?

点评

PECMD.EXE CALL $--qd# user32.dll,SystemParametersInfoW,158,X,0,1 &CUR MESS %&CUR% ------------------------------------ 测试,这样写获取不了。  详情 回复 发表于 2022-4-29 13:19
回复

使用道具 举报

86#
 楼主| 发表于 2022-4-29 13:19:34 | 只看该作者
本帖最后由 lhc0688 于 2022-4-29 13:20 编辑
lhc0688 发表于 2022-4-29 13:12
CALL $--qd# user32.dll,SystemParametersInfoW,158,X,0,1
----------------------
我瞎理解下:如果这样 ...

PECMD.EXE CALL $--qd# user32.dll,SystemParametersInfoW,158,0,0,1 &CUR

MESS %&CUR%

------------------------------------

测试,这样写获取不了。

点评

69楼的贴子不同dpi的差别 SystemParametersInfoW,159,2,0,1" SystemParametersInfoW,159,3,0,1" 照猫画虎159,4,0,1....5,0,1....这样不知能否继续下去?  详情 回复 发表于 2022-4-29 14:27
估计PECMD代码写的不对,回头等等看826773297大师上来后,有没可能再帮忙指点瞎。  发表于 2022-4-29 13:22
回复

使用道具 举报

87#
发表于 2022-4-29 14:22:21 | 只看该作者
本帖最后由 2013koko 于 2022-4-29 14:45 编辑
wsdyleon 发表于 2022-4-29 11:48
确实是这个问题。
我测试了下,用lhc0688的壳子,2013koko的wim,分辨率不再是800*600了。
当然设置分 ...

请帮忙测试下我改的这个壳,谢谢!
https://www.123pan.com/s/CTv9-gQHQH
回复

使用道具 举报

88#
发表于 2022-4-29 14:23:28 | 只看该作者
本帖最后由 2013koko 于 2022-4-29 16:18 编辑
HIGHQ 发表于 2022-4-29 11:42
OK, 問題解決了...

请帮忙测试下我修改的这个壳是否有问题,谢谢!
https://www.123pan.com/s/CTv9-wQHQH

点评

連結失效了...無法下載  详情 回复 发表于 2022-4-29 16:07
回复

使用道具 举报

89#
发表于 2022-4-29 14:27:46 | 只看该作者
lhc0688 发表于 2022-4-29 13:19
PECMD.EXE CALL $--qd# user32.dll,SystemParametersInfoW,158,0,0,1 &CUR

MESS %&CUR%

69楼的贴子不同dpi的差别
SystemParametersInfoW,159,2,0,1"
SystemParametersInfoW,159,3,0,1"
照猫画虎159,4,0,1....5,0,1....这样不知能否继续下去?

点评

我写了一个pecmd小程序,支持自动缩放dpi,运行时机是进入桌面后,可能需要重启一下explorer,有兴趣可以测试一下,system32需要有pecmd.exe  详情 回复 发表于 2022-4-29 21:42
250以下步长为25;以上为50  发表于 2022-4-29 14:48
这个应该好推,多试几次应该行,主要是如何先获取window的推荐缩放值,这个大神没接着说。  发表于 2022-4-29 14:47
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-19 20:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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