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