使用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