Python获取Win7,Win10系统缩放大小

89236831 2020-01-08

使用pywin32调用windows系统接口。
利用GetDeviceCaps获取指定设备的设备信息。
具体参考[https://docs.microsoft.com/en-us/windows/desktop/api/wingdi/nf-wingdi-getdevicecaps]
实现如下

def get_dpi():
    hDC = win32gui.GetDC(0)
    dpi = win32print.GetDeviceCaps(hDC, win32con.LOGPIXELSX)
    return dpi

win10下。如果有缩放,以上代码总只能获取到dpi为96,好像没什么卵用

以下代码能获取到屏幕实际像素,即使缩放了。也能正确获取

def get_dpi():
    hDC = win32gui.GetDC(0)
    #横向分辨率
    HORZRES = win32print.GetDeviceCaps(hDC, win32con.DESKTOPHORZRES)
    #纵向分辨率
    VERTRES = win32print.GetDeviceCaps(hDC, win32con.DESKTOPVERTRES)
    return HORZRES,VERTRES

相关推荐