无忧启动论坛

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

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

    [复制链接]
271#
发表于 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
回复

使用道具 举报

272#
发表于 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.

回复

使用道具 举报

273#
发表于 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
修改前桌面截图









修改后截图









其中我的电脑图标和傲梅分区助手图标变化最大
回复

使用道具 举报

274#
发表于 2022-12-24 23:32:06 | 只看该作者
正好遇到同样问题,先收藏再学习
回复

使用道具 举报

275#
发表于 2023-10-30 01:13:23 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

276#
发表于 2024-6-8 07:29:14 | 只看该作者
lhc0688 发表于 2022-4-26 10:07
Windows Registry Editor Version 5.00

;----------添加DPI显示缩放设置菜单----------


路过学习了
回复

使用道具 举报

277#
发表于 2024-6-8 07:31:04 | 只看该作者
可以可以
回复

使用道具 举报

278#
发表于 2024-6-16 12:32:50 来自手机 | 只看该作者
学习了
回复

使用道具 举报

279#
发表于 2024-10-19 22:53:24 | 只看该作者
527104427 发表于 2022-6-1 10:40
现在都是自动计算的。
非得改的话,把这段:
_sub SetAutoDpi *

我的显示器16:9 1920*1080 ,启动后,不会按  ifex $%DeskTopVertRes%>=1080, set dpi=125这个设置,而是dpi=100,也就是自动设置无效,不在问题在哪

点评

看看你的脚本  详情 回复 发表于 2024-10-19 23:12
回复

使用道具 举报

280#
发表于 2024-10-19 23:12:52 | 只看该作者
gbzx 发表于 2024-10-19 22:53
我的显示器16:9 1920*1080 ,启动后,不会按  ifex $%DeskTopVertRes%>=1080, set dpi=125这个设置,而是 ...

看看你的脚本

点评

我把代码: find *DoReg, call RegDpiMenu "%DoReg:~4%" find [ *DoReg & *=dpi & *=Auto ], exit 修改成: find *DoReg, call RegDpiMenu "%DoReg:~4%" find [ *DoReg & *=dpi & *=Auto ] 去掉了exit 代码继  详情 回复 发表于 2024-10-20 09:08
查了setdpi.log,根本没调用SetAutoDpi 1 {ENTER:E:\PETOOLS\setdpi.ini} 1 [LOGS --lock:123 --t=1 --2 E:\PETOOLS\setdpi.log] :操作成功完成。 1988 419.542746400000 4 {set^ EnviMode=1} 1988 419.5427542  详情 回复 发表于 2024-10-20 07:47
#code=950T936 //by Jet Chan,2022/5/30 modify by hhh333 set^ EnviMode=1 set^ ForceLocal=1 set ?ver=WinVer ifex $%ver%=480, set dpi=100 //DV(480p) //720*480 ifex $%DeskTopVe  详情 回复 发表于 2024-10-20 07:03
回复

使用道具 举报

281#
发表于 2024-10-20 07:03:48 | 只看该作者

#code=950T936
//by Jet Chan,2022/5/30   modify by hhh333
set^ EnviMode=1
set^ ForceLocal=1

set ?ver=WinVer
ifex $%ver%<0x600000000, exit  //nt5

//用到了变量偏移,新版PECMD才支持:%ProgramFiles:~6,1%  或  %^ProgramFiles:~6;1%  或  %^ProgramFiles:~6:1%
team mstr * Build=<-1>pecmdbuild| sed -ex Build=0,[^0-9],,Build
ifex $[ %pecmdver%<201201880588 | %Build%<20220527 ], team mess=+icon6 PECMD 版本低于 201201.88.05.88  Build: 2022-05-27 @错误(设置dpi)#ok*5000| exit

set RegKey=HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI
set MainIcon=%%%%SystemRoot%%%%\System32\shell32.dll,-270   //display.dll,-1
set SubIcon==%%%%SystemRoot%%%%\System32\shell32.dll,-44
set Flags= (当前值)
set RecommendIndex=   //推荐值
set RelativeIndex=    //相对值,即100%所对应的值
set MessCount=0
set DoSilence=
set DelKey=!
set RegNum=
set DoReg=
set Auto=
set dpi=

find $%~1<>,
{*
        set k0=1
        loop #%k0%<%#,
        {*
                mstr -rq++ k1=<%k0%>%*
                find $%k1:~;4%=/reg, team set DoReg=%k1%| calc #k0=%k0%+1| exit -
                find $%k1%=/s, team set DoSilence=%k1%| calc #k0=%k0%+1| exit -
                find $%k1%=/auto, team set Auto=%k1%| calc #k0=%k0%+1| exit -
                team calc #dpi=%k1%| ifex $%dpi%<100, set dpi=| calc #k0=%k0%+1
        }
}
find *<>Auto, set dpi=

call GetDpiPercent

find *<>DoReg, call RegDpiMenu "%DoReg:~4%"
find [ *<>DoReg & *=dpi & *=Auto ], exit

ifex $%ver%>=0xA00003839,   //低于win10.0.14393不支持SystemParametersInfoW函数
{*
        call GetRelativeIndex RelativeIndex
        ifex $%error%<>0,!! team find *=DoSilence, mess=+icon6 函数错误,程序即将退出! @错误(设置dpi)#OK*3000| exit
}

call SetAutoDpi
call CheckDpiRange dpi
ifex $%percent%=%dpi%, exit

//计算最大dpi公式(非自定义,自定义最大dpi为500%)  //http://bbs.c3.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=430063&pid=4576157
//暂不采用微软官方公式: //calc MaxDpi=int(%DeskTopVertRes%/720*100)   //https://docs.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/dpi-related-apis-and-registry-settings?view=windows-11
calc MaxDpi=int(%DeskTopVertRes%/600*100)
set MaxDpiOld=%MaxDpi%
call CheckDpiRange MaxDpi
find *=DoSilence,
{*
        find *<>RelativeIndex,
        {*
                ifex $[ %dpi%>%MaxDpi% & '%^UserName%'<>'SYSTEM' ],!! team call IfOrNotShutDown| ^ifex $%%error%%<>0, exit
        }!   
        {*
                find $%^UserName%<>SYSTEM,!! team call IfOrNotShutDown| ^ifex $%%error%%<>0, exit
        }
}

call ChangeDpiInApi %dpi%

//新进程才能得到更改后的dpi
exec*- -err+ -incmd CurDpi=pecmd load "%CurFile%*GetDpiPercent" --console

ifex $%CurDpi%<>%dpi%,
{
        //SYSTEM用户注销失败(shutdown.exe /l 也失败)
        find $%^UserName%<>SYSTEM,
        {
                //能注销
                ifex $%MessCount%=0,
                {
                        //前面未询问过是否注销
                        call IfOrNotShutDown
                        ifex $%error%=0,
                        {
                                //注销
                                call ChangeDpiInReg
                                call SetRightMenu
                                shut L
                        }!   
                        {
                                //不注销,还原dpi
                                call ChangeDpiInApi %percent%
                        }
                }!   
                {
                        //前面已询问过是否注销
                        call ChangeDpiInReg
                        call SetRightMenu
                        shut L
                }
        }!   
        {
                //不能注销
                ifex $%dpi%<=%MaxDpi%, set FinalDpi=%CurDpi%! set FinalDpi=%MaxDpi%
                find *=DoSilence, mess=+icon1 无法将 dpi 更改为 %dpi%%,最大仅支持 %FinalDpi%% @提示(设置dpi)#OK*5000
        }
}!   
{
        call ChangeDpiInReg
        call SetRightMenu
}
exit

_sub GetDpiPercent *
        call $--ret:ret user32.dll,SetProcessDPIAware  //成功:ret=1
        set hdcCount=0
        loop #%hdcCount%<50,
        {*
                call $--ret:hdc user32.dll,GetDC,#0
                calc #hdcCount=%hdcCount%+1
                ifex $%hdc%>0, exit
                wait 0.9
        }
        call $--ret:LogPixels Gdi32.dll,GetDeviceCaps,#%hdc%,#90         //dpi高      //#88为宽
        call $--ret:DeskTopVertRes Gdi32.dll,GetDeviceCaps,#%hdc%,#117   //分辨率高   //#118为宽
        calc percent=%LogPixels%/96*100
        find $%~1=--console,!! writ *fv --,,percent
_end

_sub SetRightMenu
        set v0=%RegKey%\shell
        regi --init --ak $%v0%\,v1
        forx *nl v1,v2,
        {
                regi --init $%v0%\%v2%\command\\,v3
                mstr * v4=<-1>v3
                find $%^UserName%=SYSTEM, set v5=%CurDpi%!      set v5=%dpi%
                ifex $%v4%=%v5%,          set v6=%v4%%%%Flags%! set v6=%v4%%%
                ifex $%v4%=%dpi%,         set v7=%SubIcon%!     set v7=%DelKey%
                ifex $%v4%>=100, regi $%v0%\%v2%\\MUIVerb=%v6%
                regi $%v0%\%v2%\\Icon%v7%
        }
_end

_sub CheckDpiRange
        set r0=
        ^ifex $%%%~1%%>250, set r1=50! set r1=25
        ^calc r2=int(%%%~1%%/%%r1%%)*%%r1%%
        ifex $%r2%<100, set r2=100
        ifex $%r2%>500, set r2=500
        set-ret %~1=%r2%
_end

_sub GetRelativeIndex
        set$# j0=*4 0
        call $--bool --qd --ret:ret user32.dll,SystemParametersInfoW,#158,0,*j0,1
        set?ints j0=j1  //j1对应100%  //http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=430063&pid=4553783
        ifex $%j1%>0, team exit= 1| exit
        set-ret %~1=%j1%
        exit= 0
_end

_sub IfOrNotShutDown
        find *<>DoSilence, team exit= 0| exit
        set-ret MessCount=1
        mess=+icon1 将 dpi 更改为 %dpi%%,需要注销才能生效,是否继续? @提示(设置dpi)#YN*5000$N
        find $%yesno%=no, exit= 1! exit= 0
_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

_sub ChangeDpiInReg
        //用改注册表+注销方式实现自动 dpi 缩放,不需要SystemParametersInfoW函数,支持所有windows系统
        calc h0=int(%dpi%/100*96)
        regi #HKCU\Control Panel\Desktop\\LogPixels=%h0%
        regi #HKCU\Control Panel\Desktop\WindowMetrics\\AppliedDPI=%h0%
        ifex $%ver%>=0x600020000,!! regi #HKCU\Control Panel\Desktop\\Win8DpiScaling=1
_end

_sub ChangeDpiInApi
        //SystemParametersInfoW函数有局限性,dpi 大于显示器 ppi 时将被重置为 ppi 最大值
        //https://www.sysceo.com/forum/thread-44479-1-1.html
        ifex [ *<>RelativeIndex & $%~1<=%MaxDpi% ],
        {
                find *=RecommendIndex,
                {*
                        ifex $%~1>250,
                        {*
                                ^calc RecommendIndex=int[(%~1-250)/50+(250-100)/25+%RelativeIndex%]
                        }!   
                        {*
                                ^calc RecommendIndex=int[(%~1-100)/25+%RelativeIndex%]
                        }
                }
                call $--qd# user32.dll,SystemParametersInfoW,159,%RecommendIndex%,0,1
        }
                set @@DeskTopFresh=1
                exec -incmd pecmd envi @@DeskTopFresh=clearicon;1   //刷新桌面图标缓存
_end

_sub RegDpiMenu
        set p1=regi $%RegKey%
        %p1%\\%DelKey%
        set p=%~1
        ifex [ *=p | $%p%>13 ], set p=13   //默认13个右键(500%),理论上支持无穷个,但系统限制只能到500%
        calc #p=%p%
        ifex $%p%>0,
        {
                sed -ex p11=1:0,\$,#,p1
                |%p1%\\SubCommands=|
                %p1%\\MUIVerb=屏幕 dpi 缩放比例(&Z)
                %p1%\\Position=Bottom
                %p1%\\Icon=%MainIcon%
                %p11%\\SeparatorBefore=1  //分隔线
                %p11%\\SeparatorAfter=1   //分隔线
                calc #p=%p%-1
                set p2=-1
                set p3=1
                loop #%p2%<%p%,
                {*
                        ifex $%p3%<2, calc p4=%p2%*25+100
                        ifex $%p4%>250,
                        {*
                                calc p4=250+%p3%*50
                                calc p3=%p3%+1
                        }
                        ifex $%p4%=%percent%,
                        {*
                                set CurFlags=%Flags%
                                set Icon=%SubIcon%
                        }!   
                        {*
                                set CurFlags=
                                set Icon=%DelKey%
                        }
                        ifex $%p4%<100, set p5=自动! set p5=%p4%%%
                        calc p6=%p2%+1
                        //以下代码为自创9进制,即是将10转换成91,11转换成92,20转换成992,以此类推(写注册表时10、100、1000等会排到9前面,比较蛋疼)
                        ifex $%p6%>=9,
                        {*
                                calc #p7=%p6%/9
                                calc p8=%p6%%9
                                code *,9,*ansi,p9
                                set= pa=*%p7% %p9%
                                code ***ansi,pa,**uni,pb
                                set p6=%pb%%p8%
                        }
                        |%p1%\shell\%p6%\\=|
                        %p1%\shell\%p6%\\MUIVerb=%p5%%CurFlags%
                        %p1%\shell\%p6%\command\\="%MyName%" load "%CurFile%" %p4%
                        %p1%\shell\%p6%\\Icon%Icon%
                        calc p2=%p2%+1
                }
        }
_end

回复

使用道具 举报

282#
发表于 2024-10-20 07:47:30 | 只看该作者

查了setdpi.log,根本没调用SetAutoDpi
1        {ENTER:E:\PETOOLS\setdpi.ini}
1        [LOGS --lock:123 --t=1 --2 E:\PETOOLS\setdpi.log]        <0>        :操作成功完成。
1988        419.542746400000        4        {set^ EnviMode=1}
1988        419.542754200000        4        [set^ EnviMode=1]        <0>        :操作成功完成。
1988        419.542759000000        5        {set^ ForceLocal=1}
1988        419.542763600000        5        [set^ ForceLocal=1]        <0>        :操作成功完成。
1988        419.542767100000        7        {set ?ver=WinVer}
1988        419.542835400000        7        [set ?ver=WinVer]        <0>        :操作成功完成。
1988        419.542845500000        8        {ifex $0xA00004A63<0x600000000, exit}
1988        419.542861700000        8        [ifex $0xA00004A63<0x600000000, exit]        <0>        :操作成功完成。
1988        419.542867900000        11        {team mstr * Build=<-1>pecmdbuild| sed -ex Build=0,[^0-9],,Build}
1988        419.542871700000        11        {mstr * Build=<-1>pecmdbuild}
1988        419.542901900000        11        [mstr * Build=<-1>pecmdbuild]        <0>        :操作成功完成。
1988        419.542905700000        11        {sed -ex Build=0,[^0-9],,Build}
1988        419.542934700000        11        [sed -ex Build=0,[^0-9],,Build]        <0>        :操作成功完成。
1988        419.542940100000        11        [team mstr * Build=<-1>pecmdbuild| sed -ex Build=0,[^0-9],,Build]        <0>        :操作成功完成。
1988        419.542954300000        12        {ifex $[ 201201880594<201201880588 | 20220825<20220527 ], team mess=+icon6 PECMD 版本低于 201201.88.05.88  Build: 2022-05-27 @错误(设置dpi)#ok*5000| exit}
1988        419.542997000000        12        [ifex $[ 201201880594<201201880588 | 20220825<20220527 ], team mess=+icon6 PECMD 版本低于 201201.88.05.88  Build: 2022-05-27 @错误(设置dpi)#ok*5000| exit]        <0>        :操作成功完成。
1988        419.543002100000        14        {set RegKey=HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI}
1988        419.543025100000        14        [set RegKey=HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI]        <0>        :操作成功完成。
1988        419.543030300000        15        {set MainIcon=%%SystemRoot%%\System32\shell32.dll,-270}
1988        419.543053100000        15        [set MainIcon=%%SystemRoot%%\System32\shell32.dll,-270]        <0>        :操作成功完成。
1988        419.543057800000        16        {set SubIcon==%%SystemRoot%%\System32\shell32.dll,-44}
1988        419.543079200000        16        [set SubIcon==%%SystemRoot%%\System32\shell32.dll,-44]        <0>        :操作成功完成。
1988        419.543083300000        17        {set Flags= (当前值)}
1988        419.543104100000        17        [set Flags= (当前值)]        <0>        :操作成功完成。
1988        419.543108100000        18        {set RecommendIndex=}
1988        419.543129300000        18        [set RecommendIndex=]        <0>        :操作成功完成。
1988        419.543133400000        19        {set RelativeIndex=}
1988        419.543154700000        19        [set RelativeIndex=]        <0>        :操作成功完成。
1988        419.543158600000        20        {set MessCount=0}
1988        419.543180400000        20        [set MessCount=0]        <0>        :操作成功完成。
1988        419.543184200000        21        {set DoSilence=}
1988        419.543205900000        21        [set DoSilence=]        <0>        :操作成功完成。
1988        419.543209700000        22        {set DelKey=!}
1988        419.543231900000        22        [set DelKey=!]        <0>        :操作成功完成。
1988        419.543235800000        23        {set RegNum=}
1988        419.543257800000        23        [set RegNum=]        <0>        :操作成功完成。
1988        419.543261700000        24        {set DoReg=}
1988        419.543284000000        24        [set DoReg=]        <0>        :操作成功完成。
1988        419.543287800000        25        {set Auto=}
1988        419.543310200000        25        [set Auto=]        <0>        :操作成功完成。
1988        419.543314000000        26        {set dpi=}
1988        419.543338500000        26        [set dpi=]        <0>        :操作成功完成。
1988        419.543342500000        28        {find $/reg<>,}
1988        419.543348300000        30        {set k0=1}
1988        419.543371500000        30        [set k0=1]        <0>        :操作成功完成。
1988        419.543381900000        31        {loop #1<2,}
1988        419.543407200000        33        {mstr -rq++ k1=<1>/reg}
1988        419.543438400000        33        [mstr -rq++ k1=<1>/reg]        <0>        :操作成功完成。
1988        419.543463300000        34        {find $/reg=/reg, team set DoReg=/reg| calc #k0=1+1| exit -}
1988        419.543508800000        34        {team set DoReg=/reg| calc #k0=1+1| exit -}
1988        419.543532100000        34        {set DoReg=/reg}
1988        419.543551400000        34        [set DoReg=/reg]        <0>        :操作成功完成。
1988        419.543561800000        34        {calc #k0=1+1}
1988        419.543590100000        34        [calc #k0=1+1]        <0>        :操作成功完成。
1988        419.543593800000        34        {exit -}
1988        419.543599400000        34        [team set DoReg=/reg| calc #k0=1+1| exit -]        <0>        :操作成功完成。
1988        419.543605000000        34        [find $/reg=/reg, team set DoReg=/reg| calc #k0=1+1| exit -]        <0>        :操作成功完成。
1988        419.543620700000        31        [loop #1<2,]        <0>        :操作成功完成。
1988        419.543626400000        28        [find $/reg<>,]        <0>        :操作成功完成。
1988        419.543630800000        40        {find *<>Auto, set dpi=}
1988        419.543642500000        40        [find *<>Auto, set dpi=]        <0>        :操作成功完成。
1988        419.543646600000        42        {call GetDpiPercent}
1988        419.543664000000        120        {call $--ret:ret user32.dll,SetProcessDPIAware}
1988        419.543776200000        120        [call $--ret:ret user32.dll,SetProcessDPIAware]        <0>        :操作成功完成。
1988        419.543783800000        121        {set hdcCount=0}
1988        419.543811400000        121        [set hdcCount=0]        <0>        :操作成功完成。
1988        419.543824800000        122        {loop #0<50,}
1988        419.543847100000        124        {call $--ret:hdc user32.dll,GetDC,#0}
1988        419.543928500000        124        [call $--ret:hdc user32.dll,GetDC,#0]        <0>        :操作成功完成。
1988        419.543943800000        125        {calc #hdcCount=0+1}
1988        419.543977000000        125        [calc #hdcCount=0+1]        <0>        :操作成功完成。
1988        419.543990700000        126        {ifex $16845587>0, exit}
1988        419.544012500000        126        {exit}
1988        419.544019400000        126        [ifex $16845587>0, exit]        <0>        :操作成功完成。
1988        419.544027400000        122        [loop #0<50,]        <0>        :操作成功完成。
1988        419.544041700000        129        {call $--ret:LogPixels Gdi32.dll,GetDeviceCaps,#16845587,#90}
1988        419.544121800000        129        [call $--ret:LogPixels Gdi32.dll,GetDeviceCaps,#16845587,#90]        <0>        :操作成功完成。
1988        419.544137100000        130        {call $--ret:DeskTopVertRes Gdi32.dll,GetDeviceCaps,#16845587,#117}
1988        419.544196500000        130        [call $--ret:DeskTopVertRes Gdi32.dll,GetDeviceCaps,#16845587,#117]        <0>        :操作成功完成。
1988        419.544211400000        131        {calc percent=96/96*100}
1988        419.544265600000        131        [calc percent=96/96*100]        <0>        :操作成功完成。
1988        419.544272700000        132        {find $=--console,!! writ *fv --,,percent}
1988        419.544281500000        132        [find $=--console,!! writ *fv --,,percent]        <0>        :操作成功完成。
1988        419.544288200000        42        [call GetDpiPercent]        <0>        :操作成功完成。
1988        419.544299400000        44        {find *<>DoReg, call RegDpiMenu ""}
1988        419.544321300000        44        {call RegDpiMenu ""}
1988        419.544353400000        220        {set p1=regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI}
1988        419.544386600000        220        [set p1=regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI]        <0>        :操作成功完成。
1988        419.544403000000        221        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\!}
1988        419.545400800000        221        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\!]        <0>        :操作成功完成。
1988        419.545413800000        222        {set p=}
1988        419.545446200000        222        [set p=]        <0>        :操作成功完成。
1988        419.545458300000        223        {ifex [ *=p | $>13 ], set p=13}
1988        419.545480200000        223        {set p=13}
1988        419.545492000000        223        [set p=13]        <0>        :操作成功完成。
1988        419.545500800000        223        [ifex [ *=p | $>13 ], set p=13]        <0>        :操作成功完成。
1988        419.545511700000        224        {calc #p=13}
1988        419.545527000000        224        [calc #p=13]        <0>        :操作成功完成。
1988        419.545537500000        225        {ifex $13>0,}
1988        419.545553200000        227        {sed -ex p11=1:0,\$,#,p1}
1988        419.545598600000        227        [sed -ex p11=1:0,\$,#,p1]        <0>        :操作成功完成。
1988        419.545610500000        228        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\SubCommands=|}
1988        419.545661900000        228        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\SubCommands=|]        <0>        :操作成功完成。
1988        419.545675000000        229        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\MUIVerb=屏幕 dpi 缩放比例(&Z)}
1988        419.545706400000        229        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\MUIVerb=屏幕 dpi 缩放比例(&Z)]        <0>        :操作成功完成。
1988        419.545718900000        230        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\Position=Bottom}
1988        419.545748400000        230        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\Position=Bottom]        <0>        :操作成功完成。
1988        419.545766100000        231        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\Icon=%%SystemRoot%%\System32\shell32.dll,-270}
1988        419.545801300000        231        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\Icon=%%SystemRoot%%\System32\shell32.dll,-270]        <0>        :操作成功完成。
1988        419.545813300000        232        {regi #HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\SeparatorBefore=1}
1988        419.545840100000        232        [regi #HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\SeparatorBefore=1]        <0>        :操作成功完成。
1988        419.545851500000        233        {regi #HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\SeparatorAfter=1}
1988        419.545878200000        233        [regi #HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\\SeparatorAfter=1]        <0>        :操作成功完成。
1988        419.545890200000        234        {calc #p=13-1}
1988        419.545912000000        234        [calc #p=13-1]        <0>        :操作成功完成。
1988        419.545920900000        235        {set p2=-1}
1988        419.545953700000        235        [set p2=-1]        <0>        :操作成功完成。
1988        419.545962500000        236        {set p3=1}
1988        419.545993900000        236        [set p3=1]        <0>        :操作成功完成。
1988        419.546006800000        237        {loop #-1<12,}
1988        419.546035000000        239        {ifex $1<2, calc p4=-1*25+100}
1988        419.546051100000        239        {calc p4=-1*25+100}
1988        419.546092400000        239        [calc p4=-1*25+100]        <0>        :操作成功完成。
1988        419.546104100000        239        [ifex $1<2, calc p4=-1*25+100]        <0>        :操作成功完成。
1988        419.546115400000        240        {ifex $75>250,}
1988        419.546129900000        240        [ifex $75>250,]        <0>        :操作成功完成。
1988        419.546151600000        245        {ifex $75=100,}
1988        419.546187000000        251        {set CurFlags=}
1988        419.546219600000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.546236700000        252        {set Icon=!}
1988        419.546277600000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.546287100000        245        [ifex $75=100,]        <0>        :操作成功完成。
1988        419.546300800000        254        {ifex $75<100, set p5=自动! set p5=75%}
1988        419.546316300000        254        {set p5=自动}
1988        419.546348500000        254        [set p5=自动]        <0>        :操作成功完成。
1988        419.546357800000        254        [ifex $75<100, set p5=自动! set p5=75%]        <0>        :操作成功完成。
1988        419.546368600000        255        {calc p6=-1+1}
1988        419.546407300000        255        [calc p6=-1+1]        <0>        :操作成功完成。
1988        419.546419800000        257        {ifex $0>=9,}
1988        419.546435700000        257        [ifex $0>=9,]        <0>        :操作成功完成。
1988        419.546451500000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\0\\=|}
1988        419.546528300000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\0\\=|]        <0>        :操作成功完成。
1988        419.546551600000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\0\\MUIVerb=自动}
1988        419.546591700000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\0\\MUIVerb=自动]        <0>        :操作成功完成。
1988        419.546632000000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\0\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 75}
1988        419.546707100000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\0\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 75]        <0>        :操作成功完成。
1988        419.546727500000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\0\\Icon!}
1988        419.546762700000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\0\\Icon!]        <0>        :操作成功完成。
1988        419.546775000000        270        {calc p2=-1+1}
1988        419.546793400000        270        [calc p2=-1+1]        <0>        :操作成功完成。
1988        419.546813500000        239        {ifex $1<2, calc p4=0*25+100}
1988        419.546829400000        239        {calc p4=0*25+100}
1988        419.546848700000        239        [calc p4=0*25+100]        <0>        :操作成功完成。
1988        419.546858100000        239        [ifex $1<2, calc p4=0*25+100]        <0>        :操作成功完成。
1988        419.546869100000        240        {ifex $100>250,}
1988        419.546883300000        240        [ifex $100>250,]        <0>        :操作成功完成。
1988        419.546906400000        245        {ifex $100=100,}
1988        419.546951200000        247        {set CurFlags= (当前值)}
1988        419.546971400000        247        [set CurFlags= (当前值)]        <0>        :操作成功完成。
1988        419.546988000000        248        {set Icon==%%SystemRoot%%\System32\shell32.dll,-44}
1988        419.547007200000        248        [set Icon==%%SystemRoot%%\System32\shell32.dll,-44]        <0>        :操作成功完成。
1988        419.547016600000        245        [ifex $100=100,]        <0>        :操作成功完成。
1988        419.547030100000        254        {ifex $100<100, set p5=自动! set p5=100%}
1988        419.547047500000        254        {set p5=100%}
1988        419.547061700000        254        [set p5=100%]        <0>        :操作成功完成。
1988        419.547071000000        254        [ifex $100<100, set p5=自动! set p5=100%]        <0>        :操作成功完成。
1988        419.547081400000        255        {calc p6=0+1}
1988        419.547099900000        255        [calc p6=0+1]        <0>        :操作成功完成。
1988        419.547112300000        257        {ifex $1>=9,}
1988        419.547128000000        257        [ifex $1>=9,]        <0>        :操作成功完成。
1988        419.547143800000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\1\\=|}
1988        419.547191300000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\1\\=|]        <0>        :操作成功完成。
1988        419.547214100000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\1\\MUIVerb=100% (当前值)}
1988        419.547255000000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\1\\MUIVerb=100% (当前值)]        <0>        :操作成功完成。
1988        419.547295100000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\1\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 100}
1988        419.547370700000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\1\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 100]        <0>        :操作成功完成。
1988        419.547391100000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\1\\Icon=%%SystemRoot%%\System32\shell32.dll,-44}
1988        419.547428000000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\1\\Icon=%%SystemRoot%%\System32\shell32.dll,-44]        <0>        :操作成功完成。
1988        419.547440600000        270        {calc p2=0+1}
1988        419.547459200000        270        [calc p2=0+1]        <0>        :操作成功完成。
1988        419.547479200000        239        {ifex $1<2, calc p4=1*25+100}
1988        419.547494700000        239        {calc p4=1*25+100}
1988        419.547513500000        239        [calc p4=1*25+100]        <0>        :操作成功完成。
1988        419.547522800000        239        [ifex $1<2, calc p4=1*25+100]        <0>        :操作成功完成。
1988        419.547534000000        240        {ifex $125>250,}
1988        419.547547800000        240        [ifex $125>250,]        <0>        :操作成功完成。
1988        419.547576000000        245        {ifex $125=100,}
1988        419.547613400000        251        {set CurFlags=}
1988        419.547626000000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.547643800000        252        {set Icon=!}
1988        419.547665000000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.547674300000        245        [ifex $125=100,]        <0>        :操作成功完成。
1988        419.547688000000        254        {ifex $125<100, set p5=自动! set p5=125%}
1988        419.547705100000        254        {set p5=125%}
1988        419.547719300000        254        [set p5=125%]        <0>        :操作成功完成。
1988        419.547728500000        254        [ifex $125<100, set p5=自动! set p5=125%]        <0>        :操作成功完成。
1988        419.547739100000        255        {calc p6=1+1}
1988        419.547757500000        255        [calc p6=1+1]        <0>        :操作成功完成。
1988        419.547769800000        257        {ifex $2>=9,}
1988        419.547785300000        257        [ifex $2>=9,]        <0>        :操作成功完成。
1988        419.547801200000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\2\\=|}
1988        419.547849000000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\2\\=|]        <0>        :操作成功完成。
1988        419.547882500000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\2\\MUIVerb=125%}
1988        419.547921500000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\2\\MUIVerb=125%]        <0>        :操作成功完成。
1988        419.547960200000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\2\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 125}
1988        419.548054800000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\2\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 125]        <0>        :操作成功完成。
1988        419.548076400000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\2\\Icon!}
1988        419.548120300000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\2\\Icon!]        <0>        :操作成功完成。
1988        419.548132400000        270        {calc p2=1+1}
1988        419.548150800000        270        [calc p2=1+1]        <0>        :操作成功完成。
1988        419.548170300000        239        {ifex $1<2, calc p4=2*25+100}
1988        419.548185700000        239        {calc p4=2*25+100}
1988        419.548203900000        239        [calc p4=2*25+100]        <0>        :操作成功完成。
1988        419.548213200000        239        [ifex $1<2, calc p4=2*25+100]        <0>        :操作成功完成。
1988        419.548224000000        240        {ifex $150>250,}
1988        419.548237700000        240        [ifex $150>250,]        <0>        :操作成功完成。
1988        419.548260300000        245        {ifex $150=100,}
1988        419.548296200000        251        {set CurFlags=}
1988        419.548308400000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.548325700000        252        {set Icon=!}
1988        419.548362800000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.548380800000        245        [ifex $150=100,]        <0>        :操作成功完成。
1988        419.548409600000        254        {ifex $150<100, set p5=自动! set p5=150%}
1988        419.548429100000        254        {set p5=150%}
1988        419.548444800000        254        [set p5=150%]        <0>        :操作成功完成。
1988        419.548465200000        254        [ifex $150<100, set p5=自动! set p5=150%]        <0>        :操作成功完成。
1988        419.548475800000        255        {calc p6=2+1}
1988        419.548496700000        255        [calc p6=2+1]        <0>        :操作成功完成。
1988        419.548508800000        257        {ifex $3>=9,}
1988        419.548524700000        257        [ifex $3>=9,]        <0>        :操作成功完成。
1988        419.548540200000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\3\\=|}
1988        419.548604000000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\3\\=|]        <0>        :操作成功完成。
1988        419.548639000000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\3\\MUIVerb=150%}
1988        419.548679800000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\3\\MUIVerb=150%]        <0>        :操作成功完成。
1988        419.548718100000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\3\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 150}
1988        419.548790200000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\3\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 150]        <0>        :操作成功完成。
1988        419.548809800000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\3\\Icon!}
1988        419.548840000000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\3\\Icon!]        <0>        :操作成功完成。
1988        419.548851500000        270        {calc p2=2+1}
1988        419.548870200000        270        [calc p2=2+1]        <0>        :操作成功完成。
1988        419.548889400000        239        {ifex $1<2, calc p4=3*25+100}
1988        419.548904500000        239        {calc p4=3*25+100}
1988        419.548922700000        239        [calc p4=3*25+100]        <0>        :操作成功完成。
1988        419.548931700000        239        [ifex $1<2, calc p4=3*25+100]        <0>        :操作成功完成。
1988        419.548942400000        240        {ifex $175>250,}
1988        419.548956100000        240        [ifex $175>250,]        <0>        :操作成功完成。
1988        419.548977800000        245        {ifex $175=100,}
1988        419.549013500000        251        {set CurFlags=}
1988        419.549025700000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.549042500000        252        {set Icon=!}
1988        419.549062700000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.549071700000        245        [ifex $175=100,]        <0>        :操作成功完成。
1988        419.549087300000        254        {ifex $175<100, set p5=自动! set p5=175%}
1988        419.549103700000        254        {set p5=175%}
1988        419.549117200000        254        [set p5=175%]        <0>        :操作成功完成。
1988        419.549126100000        254        [ifex $175<100, set p5=自动! set p5=175%]        <0>        :操作成功完成。
1988        419.549136100000        255        {calc p6=3+1}
1988        419.549153700000        255        [calc p6=3+1]        <0>        :操作成功完成。
1988        419.549165400000        257        {ifex $4>=9,}
1988        419.549180400000        257        [ifex $4>=9,]        <0>        :操作成功完成。
1988        419.549195400000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\4\\=|}
1988        419.549253400000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\4\\=|]        <0>        :操作成功完成。
1988        419.549288400000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\4\\MUIVerb=175%}
1988        419.549327700000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\4\\MUIVerb=175%]        <0>        :操作成功完成。
1988        419.549365500000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\4\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 175}
1988        419.549436600000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\4\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 175]        <0>        :操作成功完成。
1988        419.549455800000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\4\\Icon!}
1988        419.549485500000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\4\\Icon!]        <0>        :操作成功完成。
1988        419.549496900000        270        {calc p2=3+1}
1988        419.549514300000        270        [calc p2=3+1]        <0>        :操作成功完成。
1988        419.549533400000        239        {ifex $1<2, calc p4=4*25+100}
1988        419.549548200000        239        {calc p4=4*25+100}
1988        419.549566100000        239        [calc p4=4*25+100]        <0>        :操作成功完成。
1988        419.549574900000        239        [ifex $1<2, calc p4=4*25+100]        <0>        :操作成功完成。
1988        419.549585400000        240        {ifex $200>250,}
1988        419.549599400000        240        [ifex $200>250,]        <0>        :操作成功完成。
1988        419.549621200000        245        {ifex $200=100,}
1988        419.549656600000        251        {set CurFlags=}
1988        419.549668300000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.549685000000        252        {set Icon=!}
1988        419.549707600000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.549716600000        245        [ifex $200=100,]        <0>        :操作成功完成。
1988        419.549729500000        254        {ifex $200<100, set p5=自动! set p5=200%}
1988        419.549745800000        254        {set p5=200%}
1988        419.549759300000        254        [set p5=200%]        <0>        :操作成功完成。
1988        419.549767900000        254        [ifex $200<100, set p5=自动! set p5=200%]        <0>        :操作成功完成。
1988        419.549778000000        255        {calc p6=4+1}
1988        419.549795300000        255        [calc p6=4+1]        <0>        :操作成功完成。
1988        419.549807000000        257        {ifex $5>=9,}
1988        419.549821800000        257        [ifex $5>=9,]        <0>        :操作成功完成。
1988        419.549836900000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\5\\=|}
1988        419.549892900000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\5\\=|]        <0>        :操作成功完成。
1988        419.549927500000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\5\\MUIVerb=200%}
1988        419.549966200000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\5\\MUIVerb=200%]        <0>        :操作成功完成。
1988        419.550004000000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\5\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 200}
1988        419.550075600000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\5\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 200]        <0>        :操作成功完成。
1988        419.550095600000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\5\\Icon!}
1988        419.550125700000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\5\\Icon!]        <0>        :操作成功完成。
1988        419.550137300000        270        {calc p2=4+1}
1988        419.550154800000        270        [calc p2=4+1]        <0>        :操作成功完成。
1988        419.550173900000        239        {ifex $1<2, calc p4=5*25+100}
1988        419.550188700000        239        {calc p4=5*25+100}
1988        419.550206900000        239        [calc p4=5*25+100]        <0>        :操作成功完成。
1988        419.550215800000        239        [ifex $1<2, calc p4=5*25+100]        <0>        :操作成功完成。
1988        419.550226400000        240        {ifex $225>250,}
1988        419.550239700000        240        [ifex $225>250,]        <0>        :操作成功完成。
1988        419.550261700000        245        {ifex $225=100,}
1988        419.550299100000        251        {set CurFlags=}
1988        419.550310700000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.550327600000        252        {set Icon=!}
1988        419.550347800000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.550356600000        245        [ifex $225=100,]        <0>        :操作成功完成。
1988        419.550369600000        254        {ifex $225<100, set p5=自动! set p5=225%}
1988        419.550385800000        254        {set p5=225%}
1988        419.550399100000        254        [set p5=225%]        <0>        :操作成功完成。
1988        419.550407800000        254        [ifex $225<100, set p5=自动! set p5=225%]        <0>        :操作成功完成。
1988        419.550417800000        255        {calc p6=5+1}
1988        419.550435200000        255        [calc p6=5+1]        <0>        :操作成功完成。
1988        419.550446900000        257        {ifex $6>=9,}
1988        419.550461700000        257        [ifex $6>=9,]        <0>        :操作成功完成。
1988        419.550476600000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\6\\=|}
1988        419.550534000000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\6\\=|]        <0>        :操作成功完成。
1988        419.550569700000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\6\\MUIVerb=225%}
1988        419.550609500000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\6\\MUIVerb=225%]        <0>        :操作成功完成。
1988        419.550647600000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\6\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 225}
1988        419.550719900000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\6\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 225]        <0>        :操作成功完成。
1988        419.550739600000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\6\\Icon!}
1988        419.550770600000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\6\\Icon!]        <0>        :操作成功完成。
1988        419.550782100000        270        {calc p2=5+1}
1988        419.550799800000        270        [calc p2=5+1]        <0>        :操作成功完成。
1988        419.550818700000        239        {ifex $1<2, calc p4=6*25+100}
1988        419.550833500000        239        {calc p4=6*25+100}
1988        419.550851300000        239        [calc p4=6*25+100]        <0>        :操作成功完成。
1988        419.550860200000        239        [ifex $1<2, calc p4=6*25+100]        <0>        :操作成功完成。
1988        419.550872600000        240        {ifex $250>250,}
1988        419.550886100000        240        [ifex $250>250,]        <0>        :操作成功完成。
1988        419.550908300000        245        {ifex $250=100,}
1988        419.550943700000        251        {set CurFlags=}
1988        419.550955300000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.550972000000        252        {set Icon=!}
1988        419.550992200000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.551001100000        245        [ifex $250=100,]        <0>        :操作成功完成。
1988        419.551014100000        254        {ifex $250<100, set p5=自动! set p5=250%}
1988        419.551030400000        254        {set p5=250%}
1988        419.551043700000        254        [set p5=250%]        <0>        :操作成功完成。
1988        419.551052400000        254        [ifex $250<100, set p5=自动! set p5=250%]        <0>        :操作成功完成。
1988        419.551062500000        255        {calc p6=6+1}
1988        419.551079700000        255        [calc p6=6+1]        <0>        :操作成功完成。
1988        419.551091400000        257        {ifex $7>=9,}
1988        419.551106400000        257        [ifex $7>=9,]        <0>        :操作成功完成。
1988        419.551121400000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\7\\=|}
1988        419.551178000000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\7\\=|]        <0>        :操作成功完成。
1988        419.551211000000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\7\\MUIVerb=250%}
1988        419.551249800000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\7\\MUIVerb=250%]        <0>        :操作成功完成。
1988        419.551288100000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\7\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 250}
1988        419.551360000000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\7\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 250]        <0>        :操作成功完成。
1988        419.551379300000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\7\\Icon!}
1988        419.551408500000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\7\\Icon!]        <0>        :操作成功完成。
1988        419.551420000000        270        {calc p2=6+1}
1988        419.551437400000        270        [calc p2=6+1]        <0>        :操作成功完成。
1988        419.551456200000        239        {ifex $1<2, calc p4=7*25+100}
1988        419.551471000000        239        {calc p4=7*25+100}
1988        419.551490500000        239        [calc p4=7*25+100]        <0>        :操作成功完成。
1988        419.551499500000        239        [ifex $1<2, calc p4=7*25+100]        <0>        :操作成功完成。
1988        419.551510000000        240        {ifex $275>250,}
1988        419.551525300000        242        {calc p4=250+1*50}
1988        419.551542500000        242        [calc p4=250+1*50]        <0>        :操作成功完成。
1988        419.551552800000        243        {calc p3=1+1}
1988        419.551568600000        243        [calc p3=1+1]        <0>        :操作成功完成。
1988        419.551577400000        240        [ifex $275>250,]        <0>        :操作成功完成。
1988        419.551599300000        245        {ifex $300=100,}
1988        419.551634900000        251        {set CurFlags=}
1988        419.551646500000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.551663200000        252        {set Icon=!}
1988        419.551683200000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.551692000000        245        [ifex $300=100,]        <0>        :操作成功完成。
1988        419.551704800000        254        {ifex $300<100, set p5=自动! set p5=300%}
1988        419.551721000000        254        {set p5=300%}
1988        419.551734400000        254        [set p5=300%]        <0>        :操作成功完成。
1988        419.551743200000        254        [ifex $300<100, set p5=自动! set p5=300%]        <0>        :操作成功完成。
1988        419.551753200000        255        {calc p6=7+1}
1988        419.551770100000        255        [calc p6=7+1]        <0>        :操作成功完成。
1988        419.551781800000        257        {ifex $8>=9,}
1988        419.551796500000        257        [ifex $8>=9,]        <0>        :操作成功完成。
1988        419.551811600000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\8\\=|}
1988        419.551867100000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\8\\=|]        <0>        :操作成功完成。
1988        419.551901400000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\8\\MUIVerb=300%}
1988        419.551939100000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\8\\MUIVerb=300%]        <0>        :操作成功完成。
1988        419.551977100000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\8\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 300}
1988        419.552047600000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\8\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 300]        <0>        :操作成功完成。
1988        419.552066900000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\8\\Icon!}
1988        419.552097800000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\8\\Icon!]        <0>        :操作成功完成。
1988        419.552109400000        270        {calc p2=7+1}
1988        419.552126700000        270        [calc p2=7+1]        <0>        :操作成功完成。
1988        419.552145400000        239        {ifex $2<2, calc p4=8*25+100}
1988        419.552159200000        239        [ifex $2<2, calc p4=8*25+100]        <0>        :操作成功完成。
1988        419.552169500000        240        {ifex $300>250,}
1988        419.552184800000        242        {calc p4=250+2*50}
1988        419.552202500000        242        [calc p4=250+2*50]        <0>        :操作成功完成。
1988        419.552212800000        243        {calc p3=2+1}
1988        419.552228700000        243        [calc p3=2+1]        <0>        :操作成功完成。
1988        419.552237500000        240        [ifex $300>250,]        <0>        :操作成功完成。
1988        419.552259500000        245        {ifex $350=100,}
1988        419.552294900000        251        {set CurFlags=}
1988        419.552306500000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.552323400000        252        {set Icon=!}
1988        419.552343500000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.552352300000        245        [ifex $350=100,]        <0>        :操作成功完成。
1988        419.552365300000        254        {ifex $350<100, set p5=自动! set p5=350%}
1988        419.552381600000        254        {set p5=350%}
1988        419.552395000000        254        [set p5=350%]        <0>        :操作成功完成。
1988        419.552403600000        254        [ifex $350<100, set p5=自动! set p5=350%]        <0>        :操作成功完成。
1988        419.552413600000        255        {calc p6=8+1}
1988        419.552430600000        255        [calc p6=8+1]        <0>        :操作成功完成。
1988        419.552442400000        257        {ifex $9>=9,}
1988        419.552459800000        259        {calc #p7=9/9}
1988        419.552498800000        259        [calc #p7=9/9]        <0>        :操作成功完成。
1988        419.552510800000        260        {calc p8=9}
1988        419.552551400000        260        [calc p8=9]        <0>        :操作成功完成。
1988        419.552561000000        261        {code *,9,*ansi,p9}
1988        419.552600100000        261        [code *,9,*ansi,p9]        <0>        :操作成功完成。
1988        419.552615800000        262        {set= pa=*1 0x39}
1988        419.552656200000        262        [set= pa=*1 0x39]        <0>        :操作成功完成。
1988        419.552665200000        263        {code ***ansi,pa,**uni,pb}
1988        419.552705300000        263        [code ***ansi,pa,**uni,pb]        <0>        :操作成功完成。
1988        419.552721400000        264        {set p6=90}
1988        419.552741100000        264        [set p6=90]        <0>        :操作成功完成。
1988        419.552750200000        257        [ifex $9>=9,]        <0>        :操作成功完成。
1988        419.552766700000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\90\\=|}
1988        419.552825800000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\90\\=|]        <0>        :操作成功完成。
1988        419.552860200000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\90\\MUIVerb=350%}
1988        419.552900200000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\90\\MUIVerb=350%]        <0>        :操作成功完成。
1988        419.552941600000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\90\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 350}
1988        419.553017300000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\90\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 350]        <0>        :操作成功完成。
1988        419.553038900000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\90\\Icon!}
1988        419.553070200000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\90\\Icon!]        <0>        :操作成功完成。
1988        419.553081800000        270        {calc p2=8+1}
1988        419.553099600000        270        [calc p2=8+1]        <0>        :操作成功完成。
1988        419.553119700000        239        {ifex $3<2, calc p4=9*25+100}
1988        419.553133700000        239        [ifex $3<2, calc p4=9*25+100]        <0>        :操作成功完成。
1988        419.553144200000        240        {ifex $350>250,}
1988        419.553159900000        242        {calc p4=250+3*50}
1988        419.553177900000        242        [calc p4=250+3*50]        <0>        :操作成功完成。
1988        419.553188300000        243        {calc p3=3+1}
1988        419.553204100000        243        [calc p3=3+1]        <0>        :操作成功完成。
1988        419.553212800000        240        [ifex $350>250,]        <0>        :操作成功完成。
1988        419.553236000000        245        {ifex $400=100,}
1988        419.553274100000        251        {set CurFlags=}
1988        419.553285800000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.553303700000        252        {set Icon=!}
1988        419.553325200000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.553334000000        245        [ifex $400=100,]        <0>        :操作成功完成。
1988        419.553346900000        254        {ifex $400<100, set p5=自动! set p5=400%}
1988        419.553363400000        254        {set p5=400%}
1988        419.553376700000        254        [set p5=400%]        <0>        :操作成功完成。
1988        419.553385500000        254        [ifex $400<100, set p5=自动! set p5=400%]        <0>        :操作成功完成。
1988        419.553395500000        255        {calc p6=9+1}
1988        419.553415400000        255        [calc p6=9+1]        <0>        :操作成功完成。
1988        419.553427300000        257        {ifex $10>=9,}
1988        419.553445000000        259        {calc #p7=10/9}
1988        419.553464800000        259        [calc #p7=10/9]        <0>        :操作成功完成。
1988        419.553476600000        260        {calc p8=10}
1988        419.553498000000        260        [calc p8=10]        <0>        :操作成功完成。
1988        419.553507600000        261        {code *,9,*ansi,p9}
1988        419.553523300000        261        [code *,9,*ansi,p9]        <0>        :操作成功完成。
1988        419.553538700000        262        {set= pa=*1 0x39}
1988        419.553559500000        262        [set= pa=*1 0x39]        <0>        :操作成功完成。
1988        419.553568400000        263        {code ***ansi,pa,**uni,pb}
1988        419.553587700000        263        [code ***ansi,pa,**uni,pb]        <0>        :操作成功完成。
1988        419.553603600000        264        {set p6=91}
1988        419.553623800000        264        [set p6=91]        <0>        :操作成功完成。
1988        419.553632900000        257        [ifex $10>=9,]        <0>        :操作成功完成。
1988        419.553649500000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\91\\=|}
1988        419.553707200000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\91\\=|]        <0>        :操作成功完成。
1988        419.553743300000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\91\\MUIVerb=400%}
1988        419.553782900000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\91\\MUIVerb=400%]        <0>        :操作成功完成。
1988        419.553824200000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\91\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 400}
1988        419.553900100000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\91\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 400]        <0>        :操作成功完成。
1988        419.553920800000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\91\\Icon!}
1988        419.553951400000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\91\\Icon!]        <0>        :操作成功完成。
1988        419.553962900000        270        {calc p2=9+1}
1988        419.553980600000        270        [calc p2=9+1]        <0>        :操作成功完成。
1988        419.554000800000        239        {ifex $4<2, calc p4=10*25+100}
1988        419.554014900000        239        [ifex $4<2, calc p4=10*25+100]        <0>        :操作成功完成。
1988        419.554025200000        240        {ifex $400>250,}
1988        419.554042600000        242        {calc p4=250+4*50}
1988        419.554060700000        242        [calc p4=250+4*50]        <0>        :操作成功完成。
1988        419.554071000000        243        {calc p3=4+1}
1988        419.554086700000        243        [calc p3=4+1]        <0>        :操作成功完成。
1988        419.554095400000        240        [ifex $400>250,]        <0>        :操作成功完成。
1988        419.554118600000        245        {ifex $450=100,}
1988        419.554156500000        251        {set CurFlags=}
1988        419.554167900000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.554185900000        252        {set Icon=!}
1988        419.554207200000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.554216000000        245        [ifex $450=100,]        <0>        :操作成功完成。
1988        419.554228700000        254        {ifex $450<100, set p5=自动! set p5=450%}
1988        419.554245000000        254        {set p5=450%}
1988        419.554258500000        254        [set p5=450%]        <0>        :操作成功完成。
1988        419.554267200000        254        [ifex $450<100, set p5=自动! set p5=450%]        <0>        :操作成功完成。
1988        419.554277200000        255        {calc p6=10+1}
1988        419.554294500000        255        [calc p6=10+1]        <0>        :操作成功完成。
1988        419.554306200000        257        {ifex $11>=9,}
1988        419.554323600000        259        {calc #p7=11/9}
1988        419.554343100000        259        [calc #p7=11/9]        <0>        :操作成功完成。
1988        419.554354900000        260        {calc p8=11}
1988        419.554376200000        260        [calc p8=11]        <0>        :操作成功完成。
1988        419.554385700000        261        {code *,9,*ansi,p9}
1988        419.554401100000        261        [code *,9,*ansi,p9]        <0>        :操作成功完成。
1988        419.554416600000        262        {set= pa=*1 0x39}
1988        419.554437200000        262        [set= pa=*1 0x39]        <0>        :操作成功完成。
1988        419.554446200000        263        {code ***ansi,pa,**uni,pb}
1988        419.554465400000        263        [code ***ansi,pa,**uni,pb]        <0>        :操作成功完成。
1988        419.554481300000        264        {set p6=92}
1988        419.554501000000        264        [set p6=92]        <0>        :操作成功完成。
1988        419.554510100000        257        [ifex $11>=9,]        <0>        :操作成功完成。
1988        419.554526600000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\92\\=|}
1988        419.554584800000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\92\\=|]        <0>        :操作成功完成。
1988        419.554621100000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\92\\MUIVerb=450%}
1988        419.554661800000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\92\\MUIVerb=450%]        <0>        :操作成功完成。
1988        419.554705000000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\92\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 450}
1988        419.554781700000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\92\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 450]        <0>        :操作成功完成。
1988        419.554802700000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\92\\Icon!}
1988        419.554833700000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\92\\Icon!]        <0>        :操作成功完成。
1988        419.554845300000        270        {calc p2=10+1}
1988        419.554862900000        270        [calc p2=10+1]        <0>        :操作成功完成。
1988        419.554883200000        239        {ifex $5<2, calc p4=11*25+100}
1988        419.554897300000        239        [ifex $5<2, calc p4=11*25+100]        <0>        :操作成功完成。
1988        419.554907700000        240        {ifex $450>250,}
1988        419.554923300000        242        {calc p4=250+5*50}
1988        419.554941400000        242        [calc p4=250+5*50]        <0>        :操作成功完成。
1988        419.554951700000        243        {calc p3=5+1}
1988        419.554967600000        243        [calc p3=5+1]        <0>        :操作成功完成。
1988        419.554976300000        240        [ifex $450>250,]        <0>        :操作成功完成。
1988        419.554999400000        245        {ifex $500=100,}
1988        419.555037100000        251        {set CurFlags=}
1988        419.555048700000        251        [set CurFlags=]        <0>        :操作成功完成。
1988        419.555066500000        252        {set Icon=!}
1988        419.555088400000        252        [set Icon=!]        <0>        :操作成功完成。
1988        419.555097200000        245        [ifex $500=100,]        <0>        :操作成功完成。
1988        419.555110200000        254        {ifex $500<100, set p5=自动! set p5=500%}
1988        419.555126500000        254        {set p5=500%}
1988        419.555140000000        254        [set p5=500%]        <0>        :操作成功完成。
1988        419.555148700000        254        [ifex $500<100, set p5=自动! set p5=500%]        <0>        :操作成功完成。
1988        419.555158700000        255        {calc p6=11+1}
1988        419.555175900000        255        [calc p6=11+1]        <0>        :操作成功完成。
1988        419.555187500000        257        {ifex $12>=9,}
1988        419.555205000000        259        {calc #p7=12/9}
1988        419.555224500000        259        [calc #p7=12/9]        <0>        :操作成功完成。
1988        419.555236300000        260        {calc p8=12}
1988        419.555257500000        260        [calc p8=12]        <0>        :操作成功完成。
1988        419.555267000000        261        {code *,9,*ansi,p9}
1988        419.555284500000        261        [code *,9,*ansi,p9]        <0>        :操作成功完成。
1988        419.555299900000        262        {set= pa=*1 0x39}
1988        419.555320400000        262        [set= pa=*1 0x39]        <0>        :操作成功完成。
1988        419.555329300000        263        {code ***ansi,pa,**uni,pb}
1988        419.555348400000        263        [code ***ansi,pa,**uni,pb]        <0>        :操作成功完成。
1988        419.555364200000        264        {set p6=93}
1988        419.555383900000        264        [set p6=93]        <0>        :操作成功完成。
1988        419.555393000000        257        [ifex $12>=9,]        <0>        :操作成功完成。
1988        419.555409300000        266        {|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\93\\=|}
1988        419.555466600000        266        [|regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\93\\=|]        <0>        :操作成功完成。
1988        419.555503100000        267        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\93\\MUIVerb=500%}
1988        419.555543000000        267        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\93\\MUIVerb=500%]        <0>        :操作成功完成。
1988        419.555584200000        268        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\93\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 500}
1988        419.555660200000        268        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\93\command\\="X:\windows\system32\Pecmd.exe" load "E:\PETOOLS\setdpi.ini" 500]        <0>        :操作成功完成。
1988        419.555680800000        269        {regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\93\\Icon!}
1988        419.555712100000        269        [regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\93\\Icon!]        <0>        :操作成功完成。
1988        419.555723700000        270        {calc p2=11+1}
1988        419.555741300000        270        [calc p2=11+1]        <0>        :操作成功完成。
1988        419.555757900000        237        [loop #-1<12,]        <0>        :操作成功完成。
1988        419.555768800000        225        [ifex $13>0,]        <0>        :操作成功完成。
1988        419.555776900000        44        [call RegDpiMenu ""]        <0>        :操作成功完成。
1988        419.555783000000        44        [find *<>DoReg, call RegDpiMenu ""]        <0>        :操作成功完成。
1988        419.555788200000        45        {find [ *<>DoReg & *=dpi & *=Auto ], exit}
1988        419.555814000000        45        {exit}
1988        419.555819400000        45        [find [ *<>DoReg & *=dpi & *=Auto ], exit]        <0>        :操作成功完成。


回复

使用道具 举报

283#
发表于 2024-10-20 09:08:16 | 只看该作者
本帖最后由 gbzx 于 2024-10-20 09:23 编辑

我把代码:
find *<>DoReg, call RegDpiMenu "%DoReg:~4%"
find [ *<>DoReg & *=dpi & *=Auto ], exit
修改成:
find *<>DoReg, call RegDpiMenu "%DoReg:~4%"
find [ *<>DoReg & *=dpi & *=Auto ]
去掉了exit(原来就这个位置退出)
代码继续往下执行就正常了
麻烦大佬看一下,换有没有错的地方
新setdpi下载(运行日志也在里面)
setdpi.7z (10.78 KB, 下载次数: 5)
回复

使用道具 举报

284#
发表于 2024-10-20 12:01:53 | 只看该作者
本帖最后由 527104427 于 2024-10-20 12:52 编辑
gbzx 发表于 2024-10-20 09:08
我把代码:
find *DoReg, call RegDpiMenu "%DoReg:~4%"
find [ *DoReg & *=dpi & *=Auto ], exit

setdpi.7z (1.84 MB, 下载次数: 15)

点评

x64PE 正常,x86 PE 由于PECMD.EXE没有变量偏移功能,而无法用,网上找不到 x86 版的PECMD.EXE新版  详情 回复 发表于 2024-10-20 17:15
回复

使用道具 举报

285#
发表于 2024-10-20 17:15:27 | 只看该作者

x64PE 正常,x86 PE 由于PECMD.EXE没有变量偏移功能,而无法用,网上找不到 x86 版的PECMD.EXE新版

点评

你重新下载,我中午改了好几次。附件里有最新版pecmd,包含32位。建议用附件里的pecmd,因为有些特性只有最新版支持。  详情 回复 发表于 2024-10-20 17:56
回复

使用道具 举报

286#
发表于 2024-10-20 17:28:19 | 只看该作者
感谢分享
回复

使用道具 举报

287#
发表于 2024-10-20 17:56:17 | 只看该作者
gbzx 发表于 2024-10-20 17:15
x64PE 正常,x86 PE 由于PECMD.EXE没有变量偏移功能,而无法用,网上找不到 x86 版的PECMD.EXE新版

你重新下载,我中午改了好几次。附件里有最新版pecmd,包含32位。建议用附件里的pecmd,因为有些特性只有最新版支持。

点评

谢谢大佬  详情 回复 发表于 2024-10-20 18:21
回复

使用道具 举报

288#
发表于 2024-10-20 18:21:05 | 只看该作者
527104427 发表于 2024-10-20 17:56
你重新下载,我中午改了好几次。附件里有最新版pecmd,包含32位。建议用附件里的pecmd,因为有些特性只有 ...

谢谢大佬
回复

使用道具 举报

289#
发表于 2024-10-24 20:29:55 | 只看该作者
本帖最后由 gbzx 于 2024-10-24 22:33 编辑

很奇怪,setdpi中,这段代码ifex $%dpi%=100, set Sn=0| ifex $%dpi%=125, set Sn=0| ifex $%dpi%=150, set Sn=1| ifex $%dpi%=175, set Sn=2| ifex $%dpi%=200, set Sn=3| ifex $%dpi%=300, set Sn=7

应该没写错,但mess. [%dpi%][%Sndpi%][%Sn%][%Id%],其它都正常,就%Sn%是空的,但有时又会显示0,不知啥问题
setdpi.7z (3.03 KB, 下载次数: 0)

setdpi.rar

1.74 KB, 下载次数: 5, 下载积分: 无忧币 -2

点评

你这句想表达的逻辑是什么? 按PECMD的语法,你这行第一个set 后面一大串都成一个变量,而不是个设置变量。 team 和 | 才是配套的,你这里没有team,把 | 改成换行才符合逻辑。  详情 回复 发表于 2024-10-24 22:04
回复

使用道具 举报

290#
发表于 2024-10-24 22:04:29 | 只看该作者
gbzx 发表于 2024-10-24 20:29
很奇怪,setdpi中,这段代码ifex $%dpi%=100, set Sn=0| ifex $%dpi%=125, set Sn=0| ifex $%dpi%=150, set ...

你这句想表达的逻辑是什么?
按PECMD的语法,你这行第一个set 后面一大串都成一个变量,而不是逐个设置变量。
team 和 |  才是配套的,你这里没有team,把 |  改成换行才符合逻辑。

点评

前面加 team 就正常了,但sn设置数据错了  详情 回复 发表于 2024-10-25 08:17
我重新上传带2个日志的文件,一个是dpi从200变到100,另一个从100变到200 因为注册表固定4个,设置的 自动dpi值 对应菜单排第二, ifex $%dpi%=100, set Sn=0| ifex $%dpi%=125, set Sn=0| ifex $%dpi%=150,  详情 回复 发表于 2024-10-24 23:01
回复

使用道具 举报

291#
发表于 2024-10-24 23:01:34 | 只看该作者
527104427 发表于 2024-10-24 22:04
你这句想表达的逻辑是什么?
按PECMD的语法,你这行第一个set 后面一大串都成一个变量,而不是逐个设置 ...

我重新上传带2个日志的文件,一个是dpi从200变到100,另一个从100变到200
因为注册表固定4个,设置的 自动dpi值  对应菜单排第二,


ifex $%dpi%=100, set Sn=0| ifex $%dpi%=125, set Sn=0| ifex $%dpi%=150, set Sn=1| ifex $%dpi%=175, set Sn=2| ifex $%dpi%=200, set Sn=3| ifex $%dpi%=300, set Sn=7     //第一个菜单对应编号

不同的分辨率显示器,如果从基准%dpi%=100算起,Sn+1是各种不同的分辨率显示器与自动dpi值的距离(第二个菜单),而Sn是第一个菜单与基准%dpi%=100的距离,
回复

使用道具 举报

292#
发表于 2024-10-25 08:17:31 | 只看该作者
527104427 发表于 2024-10-24 22:04
你这句想表达的逻辑是什么?
按PECMD的语法,你这行第一个set 后面一大串都成一个变量,而不是逐个设置 ...

前面加 team 就正常了,但sn设置数据错了
回复

使用道具 举报

293#
发表于 2024-10-25 08:21:17 | 只看该作者
支持支持
回复

使用道具 举报

294#
发表于 2024-10-25 12:59:32 | 只看该作者
本帖最后由 gbzx 于 2024-10-25 13:01 编辑

已调试好,此版本不需要新版PECMD.EXE就可是用,我前面上传的,思路就不正确
setdpi.rar (1.73 KB, 下载次数: 8)

点评

看了一下,你这个逻辑还是不对。 举个简单的例子,比如当前DPI是100%,那么100%对应值是0。 如果当前DPI不是100%,那么100%对应值就非0,用你这个脚本设置肯定是错的。 最后不得不提一下,我写的脚本具有更  详情 回复 发表于 2024-10-25 19:47
回复

使用道具 举报

295#
发表于 2024-10-25 19:47:09 | 只看该作者
gbzx 发表于 2024-10-25 12:59
已调试好,此版本不需要新版PECMD.EXE就可是用,我前面上传的,思路就不正确

看了一下,你这个逻辑还是不对。

举个简单的例子,比如当前DPI是100%,那么100%对应值是0。
如果当前DPI不是100%,那么100%对应值就非0,用你这个脚本设置肯定是错的。


最后不得不提一下,我写的脚本具有更高的适应性,不但PE可用,正常系统也可用,不但win10可用,win7也可用,当然,也得附加PECMD才行。







点评

这是数学问题,你的排序都是把dpi=100为基点,一直排到500,我觉得没必要要那么多,再加上你的需要新版pecmd.exe。 我的思路是:只取四个菜单,对应第一个菜单(缩小一级),第二个菜单(推荐值),第三个菜单(放  详情 回复 发表于 2024-10-25 23:01
回复

使用道具 举报

296#
发表于 2024-10-25 23:01:31 | 只看该作者
本帖最后由 gbzx 于 2024-10-26 13:36 编辑
527104427 发表于 2024-10-25 19:47
看了一下,你这个逻辑还是不对。

举个简单的例子,比如当前DPI是100%,那么100%对应值是0。

这是数学问题,你的排序都是把dpi=100为基点,一直排到500,我觉得没必要那么多菜单,再加上你的需要新版pecmd.exe。
我的思路是:只取四个菜单,对应第一个菜单(缩小一级),第二个菜单(推荐值),第三个菜单(放大一级),第四个菜单(放大二级)。
分二步实现
第一步,通过写入注册表,固定四个菜单,系号(0,1,2,3),这从下面这段代码可以看出
regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\0\\Icon!
regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\1\\Icon!
regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\2\\Icon!
regi $HKLM\SOFTWARE\Classes\DesktopBackground\Shell\SetDPI\shell\3\\Icon!

比如我的显示器分辨率是16:9 1920*1080 ,对应推荐值是autodpi=125,
ifex $%dpi%>250,^team calc #dpi0=%dpi%-50| calc #dpi2=%dpi%+50| calc #dpi3=%dpi%+100! ^team calc #dpi0=%dpi%-25| calc #dpi2=%dpi%+25| calc #dpi3=%dpi%+50
这段代码意思是dpi0=100,对应第一条菜单(系号为0)。dpi=125,对应第二条菜单(系号为1),这第二条菜单对应推荐值,在写注册表时对应图标一定是当前菜单。dpi2=150,对应第三条菜单(系号为2)。dpi3=175,对应第四条菜单(系号为3)。
如果显示器分辨率是7680*4320,对应推荐值是autodpi=300,由上面公式计算得出
dpi0=250,对应第一条菜单(系号为0)。dpi=300,对应第二条菜单(系号为1),这第二条菜单对应推荐值,在写注册表是对于图标一定是当前菜单。dpi2=350,对于第三条菜单(系号为2)。dpi3=400,对于第四条菜单(系号为3)。
第二步,菜单更新,你的把dpi=100为基点,我的由于只有四个菜单,就涉及相对位置和绝对位置问题。先要讲清楚相对位置和绝对位置意思
相对位置把dpi=100为基点,其它菜单与dpi=100的距离为相对位置。我的菜单只有四个,第一个菜单和第四个菜单相对基点dpi=100,会随显示器分辨率变化,但被选中菜单离第一个菜单的差值是不变的,这叫绝对位置。
比如我的显示器为例,由于推荐dpi=125,第一条菜单是dpi=100(编号为0),第四条菜单是dpi=175(编号为3),如果选中第三条菜单,dpi=150,相对位置Menu=(%autodpi%-100)/25=2,对应绝对位置Id=2-0=2,对应菜单系号也是2,被选中菜单相对位置和绝对位置相同(这是参考基点均是dpi=100)。但如果是显示器分辨率是7680*4320,被选中菜单相对位置和绝对位置不会相同,它推荐值是dpi=300,四条菜单中分别是第一条dpi=250,相对位置Menu=(%autodpi%-250)/50+(250-100)/25=6,即编号为6,而我的显示器第一条菜单却是dpi=100,编号为0,不同显示器,由于分辨率不同,第一条菜单对应编号不同。如果后面显示器(7680*4320)也选中第三条菜单(它的dpi=350),相对位置是Menu=(%autodpi%-250)/50+(250-100)/25=8,Id=8-6=2,也与菜单系号相同,这个却不会因为分辨率不同而不同。
总结:在四个菜单中,显示器分辨率不同,虽然会造成第一条菜单菜单相对位置不同,但四个菜单任意一个菜单与第一条菜单相对位置的差值正好对应注册表系号,这是更新当前菜单标志的依据。
如果有人说四个菜单太少,可以依此扩展


推荐值由
_sub SetAutoDpi *     //根据显示器分辨率设定推荐dpi值
        find *=autodpi,
        {*
                                disp ? cur
                                mstr* * curx,cury=<1*>cur
                set autodpi=100
                ifex $%cury%>=480,  set autodpi=100  //DV(480p)  //720*480
                ifex $%cury%>=720,  set autodpi=100  //HD(720p)  //1280*720
                ifex $%cury%>=1080, set autodpi=125  //1K(1080p、Full HD、FHD)    //16:9 1920*1080   //16:10 1920*1200  //一般:1920*1080
                ifex $%cury%>=1152, set autodpi=150  //2K     //2048*1152
                ifex $%cury%>=1440, set autodpi=175  //2.5K   //WQXGA:2560*1600   //Quad HD:2560*1440
                ifex $%cury%>=2160, set autodpi=200  //4K     //一般:4096*2160    //Full Aperture 4K:4096*3112  //Academy 4K:3656*2664  //UHDTV标准:3840*2160
                ifex $%cury%>=4320, set autodpi=300  //8K     //7680*4320
        }
_end
决定


点评

然而,我看到的代码却跟你表述的大相径庭,推荐值貌似是你自己定义的,而不是通过api获取的  详情 回复 发表于 2024-10-26 09:12
回复

使用道具 举报

297#
发表于 2024-11-1 15:48:05 | 只看该作者
本帖最后由 gbzx 于 2024-11-3 20:22 编辑

对比了 527104427  和 hhh333二位大侠的代码,他们各有优缺点
设置初始菜单方面:527104427dpi菜单值100-500都有,实际有一部分用不到。而hhh333就把用不到的部分去掉了。菜单系号方面,hhh333用二位数,可从1排队12,菜单顺序不乱。不会像527104427突然排队8跳到90。从实测中发现,由于p2的最小值,决定了第一个菜单的dpi值,我用条件判断来使这个值比推荐值小一级。p值却决定了最后一个菜单的dpi值, 通过calc #p=%maxn%+1使最后一个菜单刚好是显示器允许的最大dpi值
但在升级菜单方面,:527104427 的思路更优,
由于现在大部分人用win10  win11,所以我把用不到的部分去除了 setdpi.rar (1.65 KB, 下载次数: 4)

修改了部分代码
setdpi.7z (1.44 KB, 下载次数: 0)

setdpi.rar

1.56 KB, 下载次数: 0, 下载积分: 无忧币 -2

点评

还是老问题,没能将实际dpi和api查询到的dpi系数对应起来,虽然我不知道怎么说才能让你明白,但还是忍不住说一下,免得让你误入歧途。  详情 回复 发表于 2024-11-2 13:13
回复

使用道具 举报

298#
发表于 2024-11-2 13:13:30 | 只看该作者
gbzx 发表于 2024-11-1 15:48
对比了 527104427  和 hhh333二位大侠的代码,他们各有优缺点
设置初始菜单方面:527104427dpi菜单值100-5 ...

还是老问题,没能将实际dpi和api查询到的dpi系数对应起来,虽然我不知道怎么说才能让你明白,但还是忍不住说一下,免得让你误入歧途。
回复

使用道具 举报

299#
发表于 2024-11-2 19:38:33 | 只看该作者
本帖最后由 gbzx 于 2024-11-4 11:43 编辑

现在使用的系统,超过90%以上是win10,win11。而这二个系统你可以读取系统当前dpi,但无法读取与它对应的 RecommendIndex(推荐值),RelativeIndex (相对值,即100%所对应的值),这个值通过calc RecommendIndex=int[(%~1-250)/50+(250-100)/25+%RelativeIndex%或calc RecommendIndex=int[(%~1-100)/25+%RelativeIndex%计算,比如要把dpi从100改成150,150<250,用calc RecommendIndex=int[(%~1-100)/25+%RelativeIndex%]=2,用call $--qd# user32.dll,SystemParametersInfoW,159,2,0,1写入后,可查到percent由100变成150,但你用call $--bool --qd --ret:ret user32.dll,SystemParametersInfoW,#158,0,*j0,1查改变前后的j0值,都是0。所以RelativeIndex   RecommendIndex二个参数没多大意义,要改变dpi,只有知道相应dpi对应值,用call $--qd# user32.dll,SystemParametersInfoW,159,%RecommendIndex%,0,1写入就可以了。
不同分辨率的显示器,要用多大的dpi值才合适,hhh333是使用这个表
ifex $%cury%>=480,team set autodpi=100|set maxdpi=125|set maxn=1  //DV(480p)  //720*480
ifex $%cury%>=720,team set autodpi=100|set maxdpi=150|set maxn=2  //HD(720p)  //1280*720
ifex $%cury%>=1080,team set autodpi=125|set maxdpi=175|set maxn=3  //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 $%cury%>=1152,team set autodpi=150|set maxdpi=200|set maxn=4  //2K     //2048*1152
ifex $%cury%>=1440,team set autodpi=175|set maxdpi=250|set maxn=6  //2.5K   //WQXGA:2560*1600   //Quad HD:2560*1440
ifex $%cury%>=2160,team set autodpi=200|set maxdpi=350|set maxn=8  //4K     //一般:4096*2160    //Full Aperture 4K:4096*3112  //Academy 4K:3656*2664  //UHDTV标准:3840*2160
ifex $%cury%>=4320,team set autodpi=300|set maxdpi=500|set maxn=11  //8K     //7680*4320

这个表应该是实际经验得出的,也就是按这个表格写入dpi,桌面图标大小比较合适,而且表中最大值跟实际最大值应该是相同的。
你的自动版是读取DeskTopVertRes(屏幕纵向分辨率),再通过这个分辨率计算出mandpi,mandpi/1.5算出推荐dpi,
二者不同之处在于一个是通过计算的出推荐dpi,另一个通过经验得出推荐dpi。
至于call GetDpiPercent获取原始dpi,我认为没必要,因为它偏小,所以,我主张开机就把推荐值写入,开机后,桌面图标大小就比较合适
你说的,将实际dpi和api查询到的dpi系数对应起来,实际按推荐值写入后,用exec*- -err+ -incmd CurDpi=pecmd load "%CurFile%*GetDpiPercent"读出的当前dpi,就是刚刚写入的dpi,只不过多一段代码而已

从我的测试看,用运算来确定dpi  maxdpi,不能收尾兼顾

回复

使用道具 举报

300#
发表于 2024-11-9 13:16:34 | 只看该作者
感谢楼主分享
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 05:46

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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