# -*- coding:utf-8 -*-
# 作者：齐振鋆
# 日期：2023/1/9
# 描述:
import win32api
import win32con
import win32gui
import win32print


class WindowsCommon:
    """
    windows的一些函数
    """

    def __init__(self):
        self.hdc = win32gui.GetDC(0)

    def get_screen_resolution(self):
        """
        得到屏幕的真实分辨率
        :return:
        """
        sx = win32print.GetDeviceCaps(self.hdc, win32con.DESKTOPHORZRES)
        sy = win32print.GetDeviceCaps(self.hdc, win32con.DESKTOPVERTRES)
        return sx, sy

    @staticmethod
    def get_screen_current():
        """
        得到屏幕缩放后的分辨率
        :return:
        """
        sx = win32api.GetSystemMetrics(win32con.SM_CXSCREEN)
        sy = win32api.GetSystemMetrics(win32con.SM_CYSCREEN)
        return sx, sy

    def get_screen_scale_rate(self):
        """
        得到当前屏幕的缩放比例
        :return:
        """
        screen_x, screen_y = self.get_screen_resolution()
        current_x, current_y = self.get_screen_current()
        rate = round(screen_x / current_x, 2)
        return rate


if __name__ == '__main__':
    windows_common = WindowsCommon()
    print(windows_common.get_screen_scale_rate())
