|
本帖最后由 527104427 于 2018-1-8 00:54 编辑
方法一:
// 检索显示设备上下文环境的句柄
CALL $--ret:&hdc user32.dll,GetDC,#0
// 当前系统DPI_X 大小 一般为96
CALL $--ret:&LOGPIXELSX Gdi32.dll,GetDeviceCaps,#%hdc%,#88
// 当前系统DPI_Y 大小 一般为96
CALL $--ret:&LOGPIXELSY Gdi32.dll,GetDeviceCaps,#%hdc%,#90
// 获取屏幕分辨率当前物理大小
CALL $--ret:&HORZRES Gdi32.dll,GetDeviceCaps,#%hdc%,#8 //宽
CALL $--ret:&VERTRES Gdi32.dll,GetDeviceCaps,#%hdc%,#10 //高
// 获取真实设置的桌面分辨率大小
CALL $--ret:&DESKTOPHORZRES Gdi32.dll,GetDeviceCaps,#%hdc%,#118 //宽
CALL $--ret:&DESKTOPVERTRES Gdi32.dll,GetDeviceCaps,#%hdc%,#117 //高
// 获取宽度缩放百分比
IFEX $%&LOGPIXELSX%=96, CALC &ScaleX=round(%&DESKTOPHORZRES%/%&HORZRES%*100)! CALC &ScaleX=round(%&LOGPIXELSX%/96*100)
// 获取高度缩放百分比
IFEX $%&LOGPIXELSY%=96, CALC &ScaleY=round(%&DESKTOPVERTRES%/%&VERTRES%*100)! CALC &ScaleY=round(%&LOGPIXELSY%/96*100)
//如果DPI为96,且缩放百分比不是100%,则重新计算DPI
IFEX $[ %&LOGPIXELSX%=96 & %&ScaleX%<>100 ], CALC &LOGPIXELSX=round(%&DESKTOPHORZRES%/%&HORZRES%*96)
IFEX $[ %&LOGPIXELSY%=96 & %&ScaleY%<>100 ], CALC &LOGPIXELSY=round(%&DESKTOPVERTRES%/%&VERTRES%*96)
MESS 水平方向DPI:[%&LOGPIXELSX%] 缩放百分比:[%&ScaleX%%%] 垂直方向DPI:[%&LOGPIXELSY%] 缩放百分比:[%&ScaleY%%%]
方法二:
CALL $--ret:&DPI_Aware user32.dll,SetProcessDPIAware // 设置DPI-aware,用于感知 DPI
CALL $--ret:&hdc user32.dll,GetDC,#0
CALL $--ret:&LOGPIXELSX Gdi32.dll,GetDeviceCaps,#%hdc%,#88
CALC &ScaleX=round(%&LOGPIXELSX%/96*100)
MESS DPI:[%&LOGPIXELSX%] 缩放百分比:[%&ScaleX%%%]
不谢
|
评分
-
查看全部评分
|