无忧启动论坛

 找回密码
 注册
搜索

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

查看数: 25020 | 评论数: 274 | 收藏 32
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-4-26 01:18

正文摘要:

本帖最后由 lhc0688 于 2022-5-9 00:27 编辑 对于DPI显示缩放,论坛里查过不少帖子,很多技术思路,但一直未找到能简单应用的方案。目前能在PE中看到的方案,大致有三种: 1、直接写注册表,缩放设置为150%。 ...

回复

nowayer 发表于 2023-10-30 01:13:23
提示: 作者被禁止或删除 内容自动屏蔽
溪流花落 发表于 2022-12-24 23:32:06
正好遇到同样问题,先收藏再学习
gbzx 发表于 2022-9-19 21:19:45
本帖最后由 gbzx 于 2022-9-20 09:10 编辑

在使用自动匹配DPI时,总觉得图标没变大。今天发现是ENVI @@DeskTopFresh=1的问题,虽画面不闪,但图标没变大。我点kill explorer.exe刷新,图标变大了,于是我把原来代码改成如下:

//获取屏幕分辨率
DISP  ? &CUR
MSTR* curx=<2>%&CUR%  //<1>截取屏幕横向分辨率,并赋值curx。<2>截取屏幕纵向分辨率,并赋值curx。
//获取系统推荐DPI
ENVI$# &pvParam=*4 0
CALL $--bool --qd --ret:&SystemParametersInfoWRet user32.dll,SystemParametersInfoW,#158,0,*&pvParam,1
ENVI?ints &pvParam=&DPI0
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
//开机自动匹配DPI缩放
ifex $%curx%>=720,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI0%,0,1  //HD
ifex $%curx%>=1080,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI1%,0,1  //FHD
ifex $%curx%>=1440,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI2%,0,1  //2K
ifex $%curx%>=2160,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI3%,0,1  //4K
ifex $%curx%>=4320,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI4%,0,1  //8K
kill explorer.exe
//注册右键DPI缩放菜单
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\SubCommands=
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\MUIVerb=DPI设置(&Z)
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\Icon=X:\Windows\Resources\Icons\Display.dll_1.ico
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\Position=Bottom
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor0\MUIVerb=缩放比例 100%%
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor0\command\=PECMD.EXE TEAM CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI0%,0,1| kill explorer.exe
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor1\MUIVerb=缩放比例 125%%
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor1\command\=PECMD.EXE TEAM CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI1%,0,1| kill explorer.exe
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor2\MUIVerb=缩放比例 150%%
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor2\command\=PECMD.EXE TEAM CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI2%,0,1| kill explorer.exe
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor3\MUIVerb=缩放比例 175%%
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor3\command\=PECMD.EXE TEAM CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI3%,0,1| kill explorer.exe
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor4\MUIVerb=缩放比例 200%%
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor4\command\=PECMD.EXE TEAM CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI4%,0,1| kill explorer.exe
修改前桌面截图









修改后截图









其中我的电脑图标和傲梅分区助手图标变化最大
红毛樱木 发表于 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.

gbzx 发表于 2022-9-14 21:36:48
本帖最后由 gbzx 于 2022-9-14 21:46 编辑
红毛樱木 发表于 2022-9-14 16:44
[CALL $--qd# user32.dll,SystemParametersInfoW,159,,0,1]                :函数不正确

日志里反应出 ...

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

LOGS %windir%\pe.log
//获取屏幕分辨率
DISP  ? &CUR
MSTR* curx=<2>%&CUR%  //<1>截取屏幕横向分辨率,并赋值curx。<2>截取屏幕纵向分辨率,并赋值curx。
//获取系统推荐DPI
ENVI$# &pvParam=*4 0
CALL $--bool --qd --ret:&SystemParametersInfoWRet user32.dll,SystemParametersInfoW,#158,0,*&pvParam,1
ENVI?ints &pvParam=&DPI0
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
//自动设置系统开机缩放比例
ifex $%curx%>=720,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI0%,0,1  //HD
ifex $%curx%>=1080,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI1%,0,1  //FHD
ifex $%curx%>=1440,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI2%,0,1  //2K
ifex $%curx%>=2160,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI3%,0,1  //4K
ifex $%curx%>=4320,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI4%,0,1  //8K
MESS %&SystemParametersInfoWRet%<%&DPI0%>
PE日志如下

1        {ENTER:D:\autodpi.ini}
1        [LOGS X:\Windows\pe.log]        <0>        :操作成功完成。
2        
3        [DISP  ? &CUR]        <0>        :操作成功完成。
4        [MSTR* curx=<2>1920        1080        32        64]        <0>        :操作成功完成。
5        
6        [ENVI$# &pvParam=*4 0]        <0>        :操作成功完成。
7        [CALL $--bool --qd --ret:&SystemParametersInfoWRet user32.dll,SystemParametersInfoW,#158,0,*&pvParam,1]        <0>        :操作成功完成。
8        [ENVI?ints &pvParam=&DPI0]        <0>        :操作成功完成。
9        [CALC #&DPI1=0+1]        <0>        :操作成功完成。
9        [CALC #&DPI2=0+2]        <0>        :操作成功完成。
9        [CALC #&DPI3=0+3]        <0>        :操作成功完成。
9        [CALC #&DPI4=0+4]        <0>        :操作成功完成。
9        [CALC #&DPI5=0+5]        <0>        :操作成功完成。
9        [CALC #&DPI6=0+6]        <0>        :操作成功完成。
9        [CALC #&DPI7=0+7]        <0>        :操作成功完成。
9        [TEAM CALC #&DPI1=0+1| CALC #&DPI2=0+2| CALC #&DPI3=0+3| CALC #&DPI4=0+4| CALC #&DPI5=0+5| CALC #&DPI6=0+6| CALC #&DPI7=0+7]        <0>        :操作成功完成。
11        {ifex $1080>=720,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,0,0,1}
11        [CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,0,0,1]        <0>        :操作成功完成。
11        [ifex $1080>=720,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,0,0,1]        <0>        :操作成功完成。
12        {ifex $1080>=1080,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,1,0,1}
12        [CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,1,0,1]        <0>        :操作成功完成。
12        [ifex $1080>=1080,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,1,0,1]        <0>        :操作成功完成。
13        {ifex $1080>=1440,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,2,0,1}
13        [ifex $1080>=1440,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,2,0,1]        <0>        :操作成功完成。
14        {ifex $1080>=2160,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,3,0,1}
14        [ifex $1080>=2160,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,3,0,1]        <0>        :操作成功完成。
15        {ifex $1080>=4320,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,4,0,1}
15        [ifex $1080>=4320,CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,4,0,1]        <0>        :操作成功完成。
16        [MESS 1<0>]        <0>        :操作成功完成。


MESS %&SystemParametersInfoWRet%<%&DPI0%>的结果是[MESS 1<0>],前面的那个1不知是啥意?0应该是系统推荐的DPI


桌面右键

//注册右键菜单
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\SubCommands=
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\MUIVerb=DPI设置(&Z)
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\Icon=X:\Windows\Resources\Icons\Display.dll_1.ico
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\Position=Bottom
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor0\MUIVerb=缩放比例 100%%
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor0\command\=PECMD.EXE TEAM CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI0%,0,1| ENVI @@DeskTopFresh=1
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor1\MUIVerb=缩放比例 125%%
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor1\command\=PECMD.EXE TEAM CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI1%,0,1| ENVI @@DeskTopFresh=1
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor2\MUIVerb=缩放比例 150%%
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor2\command\=PECMD.EXE TEAM CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI2%,0,1| ENVI @@DeskTopFresh=1
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor3\MUIVerb=缩放比例 175%%
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor3\command\=PECMD.EXE TEAM CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI3%,0,1| ENVI @@DeskTopFresh=1
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor4\MUIVerb=缩放比例 200%%
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor4\command\=PECMD.EXE TEAM CALL $--bool --qd# user32.dll,SystemParametersInfoW,159,%&DPI4%,0,1| ENVI @@DeskTopFresh=1

点评

你这里的显示都没问题了呀。 1是SystemParametersInfoW的返回值[/backcolor] https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfow Return valueType: BOOLIf the fu  详情 回复 发表于 2022-9-15 16:54
howar2022 发表于 2022-9-14 19:45:40
谢谢分享
红毛樱木 发表于 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
gbzx 发表于 2022-9-13 09:46:11
本帖最后由 gbzx 于 2022-9-13 21:54 编辑
红毛樱木 发表于 2022-4-29 15:09
其中 %&vParam% 为当前系统默认DPI拉伸值与100%对应关系。
假设如果你获取到的值是-2,那 ...

请问大师,代码:CALL $--bool --qd --ret:&Ret user32.dll,SystemParametersInfo,#158,0,*&pvParam,1获取DPI值正常,但设置DPI值:CALL $--qd# user32.dll,SystemParametersInfoW,159,%&DPI0%,0,1会出现
[CALL $--qd# user32.dll,SystemParametersInfoW,159,,0,1]        <1>        :函数不正确
[CALL $--qd# user32.dll,SystemParametersInfoW,159,1,0,1]        <1>        :函数不正确。
是啥问题,但执行后,图标会相应变化
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
检查出二方面问题
第一方面,我是套用作者Bluebells 的代码,获取PDI代码 CALL $--bool --qd --ret:&SystemParametersInfoWRet user32.dll,SystemParametersInfoW,#158,0,*&pvParam,1正常,但设置PDI代码 CALL $--qd# user32.dll,SystemParametersInfoW,159,%&DPI2%,0,1   就会提示“函数不正确”,增加参数--bool就不会了。
第二方面,Win10 x86 PE,估计精简过度也不知是注册表还是缺文件,在64为Win10正常情况下,移植到Win10 x86 PE,还出现“函数不正确”,估计注册表概率更大。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
换一个Win10 x86 PE,不会了,

点评

[CALL $--qd# user32.dll,SystemParametersInfoW,159,,0,1] :函数不正确 日志里反应出来了吧,第二个参数空了没传进去  详情 回复 发表于 2022-9-14 16:44
gbzx 发表于 2022-9-12 10:14:01
2013koko 发表于 2022-5-2 18:46
我觉得可以直接从 159,0,0,1 来往两边分,不用写具体的缩放值。因为这个就是系统推荐的缩放比例。
推荐 ...

放大一级代码:
REGI $HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\ZoomFactor1\MUIVerb=
=放大一级
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

请问高手:缩小一级
代码是如何写?
geciwang 发表于 2022-9-11 14:04:37
谢谢分享
leo2leo 发表于 2022-9-11 11:17:30
        很给力!
Lin7an 发表于 2022-9-10 16:38:31
527104427 发表于 2022-5-29 22:50
添加 /s  和  /auto 参数
所有参数可以写一起,没有顺序之分
pecmd    load    setdpi.wcs    /s     /re ...

谢谢
Lin7an 发表于 2022-9-10 11:08:31
dpi的数值可以直接设96吗?
Lin7an 发表于 2022-9-10 11:07:39
hhh333 发表于 2022-5-28 10:01
把逻辑重新整理一下:
1、Win10以下,不用函数,如果是非SYSTEM用户则写注册表然后注销,否则退出;有效 ...

setdpi是放的哪个位置的呢?
saiz 发表于 2022-6-1 18:22:45
527104427 发表于 2022-6-1 10:40
现在都是自动计算的。
非得改的话,把这段:
_sub SetAutoDpi *

感謝!!
saiz 发表于 2022-6-1 18:22:19
szwp 发表于 2022-6-1 09:20
PE里的VM还是VM里的PE?

VM裡的PE
hhh333 发表于 2022-6-1 17:02:38
527104427 发表于 2022-6-1 16:40
感觉搞个GUI挺好的,有时间慢慢玩

也是一种方案,估计使用右键菜单习惯些
527104427 发表于 2022-6-1 16:40:03


感觉搞个GUI挺好的,有时间慢慢玩


点评

也是一种方案,估计使用右键菜单习惯些  详情 回复 发表于 2022-6-1 17:02
hhh333 发表于 2022-6-1 16:14:08
527104427 发表于 2022-6-1 10:40
现在都是自动计算的。
非得改的话,把这段:
_sub SetAutoDpi *

这个合理一点

点评

感觉搞个GUI挺好的,有时间慢慢玩 [attachimg]502342[/attachimg]  详情 回复 发表于 2022-6-1 16:40
527104427 发表于 2022-6-1 10:40:06
saiz 发表于 2022-6-1 09:04
請問下.我覺得1920*1080時 125%看起來較舒服
那我要在setdpi.wcs修改哪裡才可以自動縮放?

现在都是自动计算的。
非得改的话,把这段:
_sub SetAutoDpi *
        find *=dpi,
        {*
                find *<>RelativeIndex,
                {*
                        //https://www.codenong.com/35233182/
                        set RecommendIndex=0  //0为系统推荐值,系统自动算的,可能是100%,也可能是350%
                        calc i0=(%RecommendIndex%-%RelativeIndex%)-6  //计算250%以上的步进数(步进单位为50%)
                        ifex $%i0%>0, calc dpi=int(6*25+%i0%*50+100)! calc dpi=int[(%RecommendIndex%-%RelativeIndex%)*25+100]
                }!   
                {*
                        //推荐dpi计算公式:最大dpi/1.5
                        calc dpi=int(%MaxDpiOld%/1.5)
                        call CheckDpiRange dpi
                }
        }
_end


换成:
_sub SetAutoDpi *
        find *=dpi,
        {*
                //根据分辨率设定自动DPI值
                set dpi=100
                ifex $%DeskTopVertRes%>=480,  set dpi=100  //DV(480p)  //720*480
                ifex $%DeskTopVertRes%>=720,  set dpi=100  //HD(720p)  //1280*720
                ifex $%DeskTopVertRes%>=1080, set dpi=125  //1K(1080p、Full HD、FHD)    //16:9 1920*1080   //16:10 1920*1200  //一般:1920*1080,虽然具有近 2000 像素的水平分辨率,但在大部分的媒体,包括网页制作以及影像制作,书籍等都认为 1080p 与 2K 分辨率为不同的分辨率而非相同,并不是标准的2K,但因为1080p具有近 2000 像素的水平分辨率,因此1080p可以被归类为2K,而非1K。
                ifex $%DeskTopVertRes%>=1152, set dpi=150  //2K     //2048*1152
                ifex $%DeskTopVertRes%>=1440, set dpi=175  //2.5K   //WQXGA:2560*1600   //Quad HD:2560*1440
                ifex $%DeskTopVertRes%>=2160, set dpi=200  //4K     //一般:4096*2160    //Full Aperture 4K:4096*3112  //Academy 4K:3656*2664  //UHDTV标准:3840*2160
                ifex $%DeskTopVertRes%>=4320, set dpi=300  //8K     //7680*4320
        }
_end



点评

感謝!!  详情 回复 发表于 2022-6-1 18:22
这个合理一点  详情 回复 发表于 2022-6-1 16:14
szwp 发表于 2022-6-1 09:20:35
saiz 发表于 2022-5-30 23:01
後來再試又都沒問題了.
主機負荷吃重影響到VM嗎?
真奇怪

PE里的VM还是VM里的PE?

点评

VM裡的PE  详情 回复 发表于 2022-6-1 18:22
saiz 发表于 2022-6-1 09:04:25
請問下.我覺得1920*1080時 125%看起來較舒服
那我要在setdpi.wcs修改哪裡才可以自動縮放?

点评

现在都是自动计算的。 非得改的话,把这段: _sub SetAutoDpi * find *=dpi, {* find *RelativeIndex, {* //https://www.codenong.com/35233182/ set RecommendIndex=0 //0为系统推荐值,系统  详情 回复 发表于 2022-6-1 10:40
saiz 发表于 2022-5-30 23:01:09
後來再試又都沒問題了.
主機負荷吃重影響到VM嗎?
真奇怪

点评

PE里的VM还是VM里的PE?  详情 回复 发表于 2022-6-1 09:20
527104427 发表于 2022-5-30 20:49:59
saiz 发表于 2022-5-30 20:10
最新版運算很吃資源嗎?
在VM中測試.因為資源不足而卡住了
分配RAM是4G的

不会啊,命令都是明码,看不出来有问题,
你在wcs第一句加上:
LOGS **t=1 **ON=1 **2 * "C:\XXX.LOG"
看看具体情况。
saiz 发表于 2022-5-30 20:10:07
最新版運算很吃資源嗎?
在VM中測試.因為資源不足而卡住了
分配RAM是4G的

点评

不会啊,命令都是明码,看不出来有问题, 你在wcs第一句加上: LOGS **t=1 **ON=1 **2 * "C:\XXX.LOG" 看看具体情况。  详情 回复 发表于 2022-5-30 20:49
527104427 发表于 2022-5-29 22:50:36
本帖最后由 527104427 于 2022-5-30 11:56 编辑

添加 /s  和  /auto 参数
所有参数可以写一起,没有顺序之分
pecmd    load    setdpi.wcs    /s     /reg    /auto
pecmd    load    setdpi.wcs    150   /reg    /s

setdpi.7z (4.25 KB, 下载次数: 90)




527104427 发表于 2022-5-29 14:06:06
hhh333 发表于 2022-5-29 13:56
哈哈,我们都太笨了。根本不必这么写,愚蠢限制了我们的想像力
永远是这几条
节约400多微秒,每次都是{ ...

这个帅啊!666
hhh333 发表于 2022-5-29 13:56:10
本帖最后由 hhh333 于 2022-5-29 13:59 编辑
527104427 发表于 2022-5-29 13:41
哈哈哈,这是强迫症犯了吧?

哈哈,我们都太笨了。根本不必这么写,愚蠢限制了我们的想像力
  1. ifex $%dpi%>250,set v=50!set v=25
  2. calc dpi=int(%dpi%/%v%)*%v%
  3. ifex $%dpi%<50, set dpi=25
  4. ifex $%dpi%>500, set dpi=500
复制代码
永远是这几条
节约400多微秒,每次都是

点评

这个帅啊!666  详情 回复 发表于 2022-5-29 14:06
527104427 发表于 2022-5-29 13:41:02
hhh333 发表于 2022-5-29 12:40
是的有问题,如下改下也可:

咸得蛋疼测了下耗时:

哈哈哈,这是强迫症犯了吧?

点评

哈哈,我们都太笨了。根本不必这么写,愚蠢限制了我们的想像力 永远是这几条  详情 回复 发表于 2022-5-29 13:56
hhh333 发表于 2022-5-29 12:40:45
本帖最后由 hhh333 于 2022-5-29 13:23 编辑
527104427 发表于 2022-5-29 12:11
仔细看了一下你这个代码,貌似不对哦,假如传入的dpi=600,在第二句就被阻断了,变成dpi=50了,后面肯 ...

是的有问题,如下改下也可:
  1. set d=%dpi%
  2. ifex $%d%<50, set dpi=25
  3. ifex $%d%>=50, set dpi=50
  4. ifex $%d%>=75, set dpi=75
  5. ifex $%d%>=100, set dpi=100
  6. ifex $%d%>=125, set dpi=125
  7. ifex $%d%>=150, set dpi=150
  8. ifex $%d%>=175, set dpi=175
  9. ifex $%d%>=200, set dpi=200
  10. ifex $%d%>=225, set dpi=225
  11. ifex $%d%>=250, set dpi=250
  12. ifex $%d%>=300, set dpi=300
  13. ifex $%d%>=350, set dpi=350
  14. ifex $%d%>=400, set dpi=400
  15. ifex $%d%>=450, set dpi=450
  16. ifex $%d%>=500, set dpi=500
复制代码

咸得蛋疼测了下耗时:


点评

哈哈哈,这是强迫症犯了吧?  详情 回复 发表于 2022-5-29 13:41

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

闽公网安备 35020302032614号

GMT+8, 2024-5-8 03:10

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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