#pip install pywin32
import platform
import tkinter as tk
def screen_scale_rate():
"""获取缩放后的分辨率"""
if ('Windows' == platform.system()):
from win32 import win32api, win32gui, win32print
from win32.lib import win32con
sX = win32api.GetSystemMetrics(0) #获得屏幕分辨率X轴
sY = win32api.GetSystemMetrics(1) #获得屏幕分辨率Y轴
print(f"获得屏幕分辨率X轴: {sX}")
print(f"获得屏幕分辨率Y轴: {sY}")
"""获取真实的分辨率"""
hDC = win32gui.GetDC(0)
x = win32print.GetDeviceCaps(hDC, win32con.DESKTOPHORZRES) # 横向分辨率
y = win32print.GetDeviceCaps(hDC, win32con.DESKTOPVERTRES) # 纵向分辨率
print(f"横向分辨率: {x}")
print(f"纵向分辨率: {y}")
# 缩放比率
screen_scale_rate = round( y/ sY, 2)
print('计算得到的屏幕缩放比为:',screen_scale_rate)
if __name__=="__main__":
screen_scale_rate()
C++:
// 编译方式 g++ getScanse.cpp -lgdi32 -luser32 -o getScanse
// 链接库 -lgdi32 -luser32
#include <windows.h>
#include <iostream>
#pragma(comment(lib,"user32.lib")
int main() {
size_t width = (size_t)GetSystemMetrics(SM_CXSCREEN);
size_t height = (size_t)GetSystemMetrics(SM_CYSCREEN);
std::cout << "Screen Resolution: " << width << "x" << height << std::endl;
HDC hDC = GetDC(NULL);
int x = GetDeviceCaps(hDC, DESKTOPHORZRES); // 横向分辨率
int y = GetDeviceCaps(hDC, DESKTOPVERTRES); // 纵向分辨率
ReleaseDC(NULL, hDC);
std::cout << "Screen Resolution: " << x << "x" << y << std::endl;
return 0;
}
主要问题在依赖的配置