Python修改屏幕分辨率

修改Windows支持的所有分辨率,并恢复原始分辨率
import win32com, win32api,win32con,win32gui,win32print
from win32api import GetSystemMetrics
import time
def get_real_resolution():
    """获取真实的分辨率"""
    hDC = win32gui.GetDC(0)
    # 横向分辨率
    w = win32print.GetDeviceCaps(hDC, win32con.DESKTOPHORZRES)
    # 纵向分辨率
    h = win32print.GetDeviceCaps(hDC, win32con.DESKTOPVERTRES)
    return w, h

#获得缩放比例

real_resolution = get_real_resolution()
screen_size = get_screen_size()
print(real_resolution)
print(screen_size)

screen_scale_rate = round(real_resolution[0] / screen_size[0], 2)
print(screen_scale_rate)
def get_screen_size():
    """获取缩放后的分辨率"""
    w = GetSystemMetrics (0)
    h = GetSystemMetrics (1)
    return w, h



    resolutions_width = [1920,1920, 1680, 1600, 1440, 1400, 1366, 1360, 1280, 1280, 1280, 1280, 1280, 1280, 1152, 1024, 800,640]

    resolutions_width.append(get_real_resolution()[0])

    resolutions_height = [1200,1080, 1050, 900, 900, 1050, 768, 768, 1024, 960, 800, 768, 720, 600, 864, 768, 600, 480]
    # resolutions_height = [1200]
    resolutions_height.append(get_real_resolution()[1])
    print resolutions_height
    for i in range(0,len(resolutions_width)):
        print resolutions_width[i]
        dm = win32api.EnumDisplaySettings(None, 0)
        dm.PelsHeight = resolutions_height[i]
        dm.PelsWidth = resolutions_width[i]
        dm.BitsPerPel = 32
        dm.DisplayFixedOutput = 0
        win32api.ChangeDisplaySettings(dm, 0)
        print str(dm.PelsWidth)+"*"+str(dm.PelsHeight)
        time.sleep(7)
        # salling_mode()
    print 1
    dm = win32api.EnumDisplaySettings(None, 0)
    print 1

    time.sleep(1)
set_resolutions()

#获取屏幕支持的分辨率

import win32api,getpass,os

Username = getpass.getuser()
Deskpath = r'C:\Users\%s\Desktop' % Username
def write_result(result):
    os.chdir(Deskpath)
    with open('resolution.txt', 'a') as f:
        f.write(result + '\n')

i=0
res=set()
try:
  while True:
    ds=win32api.EnumDisplaySettings(None, i)
    res.add(f"{ds.PelsWidth}x{ds.PelsHeight}")
    i+=1
    
except: pass

print(res)
for i in res:
    write_result(str(i))

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值