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 dpiwin10下。如果有缩放,以上代码总只能获取到dpi为96,好像没什么卵用
以下代码能获取到屏幕实际像素,即使缩放了。也能正确获取
def get_dpi():
hDC = win32gui.GetDC(0)
#横向分辨率
HORZRES = win32print.GetDeviceCaps(hDC, win32con.DESKTOPHORZRES)
#纵向分辨率
VERTRES = win32print.GetDeviceCaps(hDC, win32con.DESKTOPVERTRES)
return HORZRES,VERTRES