Python实现设置显示屏分辨率

 更新时间:2023年01月12日 14:52:20   作者:虫无涯  
这篇文章主要为大家详细介绍了Python如何调用win32库实现分辨率获取和读写,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考下

工具安装

主要调用win32库实现分辨率获取和读写,需要安装pywin32

示例中是从execl列表中读取需要设置的分辨率,需要安装xlrd

用到的execl分辨率列表如下:

pip install pywin32
pip install xlrd

完整脚本

import win32api,win32con,time,xlrd

"""
Author:NoamaNelson
Date:2019-11-26
Discription:Python sets the resolution of Windows computer graphics card and obtains the resolution
"""

book1 = xlrd.open_workbook('常见分辨率.xlsx') # 打开表格
q = book1.sheet_by_index(0) # 使用索引的方式获取sheet1工作簿
i = 0
while(i<=5):
    print("第%d次设置"%i)
    mwidth = str(q.cell_value(i+1,0))    # 获取单元格中的值
    nwidth = mwidth.split(".")[0]    # 获取的值为float,转换成字符串然后进行分割取整
    WidthSet = int(nwidth) # 从表格中获取的分辨率宽的值
    #print(WidthSet)

    mhigth = str(q.cell_value(i+1,1))    # 获取单元格中的值
    nhigth = mhigth.split(".")[0]    # 获取的值为float,转换成字符串然后进行分割取整
    HeightSet = int(nhigth)    # 从表格中获取的分辨率宽的值
    #print(HeightSet)
    
    ResoLutionSet = win32api.EnumDisplaySettings(None, 0) # 调用win32api接口,获取显示设备信息

    ResoLutionSet.PelsHeight = HeightSet # 设置分辨率高
    ResoLutionSet.PelsWidth = WidthSet # 设置分辨率宽
    print("设置的分辨率宽: %d, 设置的分辨率高: %d, 即设置的分辨率为:%d x %d" % (WidthSet, HeightSet, WidthSet, HeightSet))

    ResoLutionSet.BitsPerPel = 32 # 显示设备的颜色分辨率
    ResoLutionSet.DisplayFixedOutput = 2 # 设置分辨率后拉伸画面,否则切换到小分辨率时,屏幕只在中间一小块

    if (win32api.ChangeDisplaySettings(ResoLutionSet, 0)) == 0: # DISP_CHANGE_SUCCESSFUL
        win32api.ChangeDisplaySettings(ResoLutionSet, 0) # 设置生效
    else:
        win32api.ChangeDisplaySettings(None, 0) # 恢复默认

    screenNum = win32api.GetSystemMetrics(win32con.SM_CMONITORS)
    print("显示设备的总数量为: %d" % screenNum)

    aScreenWidth = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
    aScreenHeight = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
    print("当前屏幕总的分辨率为:%d × %d " % (aScreenWidth, aScreenHeight))

    WidthGet = win32api.GetSystemMetrics(win32con.SM_CXSCREEN) # 获得屏幕分辨率X轴
    HeightGet = win32api.GetSystemMetrics(win32con.SM_CYSCREEN) # 获得屏幕分辨率Y轴
    print ("获取的分辨率宽: %d, 获取的分辨率高: %d, 即获取的分辨率为:%d x %d" % (WidthGet, HeightGet, WidthGet, HeightGet))
    time.sleep(3)
   
    i += 1

输出的结果

存在的问题

目前使用这种方式,只能设置显卡列表支持的分辨率,不支持自定义分辨率。不知道有什么更好的方式,有知道的大牛给指导下。

到此这篇关于Python实现设置显示屏分辨率的文章就介绍到这了,更多相关Python设置显示屏分辨率内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现绘图散点图(scatter)

    Python实现绘图散点图(scatter)

    这篇文章主要介绍了Python实现绘图散点图方式(scatter),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 使用Python生成F分布表并导出为Excel文件的代码实现

    使用Python生成F分布表并导出为Excel文件的代码实现

    在统计分析中,F FF分布是一种非常重要的连续概率分布,广泛应用于方差分析、回归分析的显著性检验等场景,为了方便查阅和使用F分布的临界值,本文给大家介绍了使用Python生成F分布表并导出为Excel文件,需要的朋友可以参考下
    2024-11-11
  • Python设计模式中的状态模式你了解吗

    Python设计模式中的状态模式你了解吗

    这篇文章主要为大家详细介绍了Python设计模式中的状态模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • python判断一个集合是否包含了另外一个集合中所有项的方法

    python判断一个集合是否包含了另外一个集合中所有项的方法

    这篇文章主要介绍了python判断一个集合是否包含了另外一个集合中所有项的方法,涉及Python集合操作的相关技巧,需要的朋友可以参考下
    2015-06-06
  • Python 实现简单的客户端认证

    Python 实现简单的客户端认证

    这篇文章主要介绍了Python 如何实现简单的客户端认证,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • python接口自动化之使用token传入到header消息头中

    python接口自动化之使用token传入到header消息头中

    这篇文章主要介绍了python接口自动化之使用token传入到header消息头中问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python日志器使用方法及原理解析

    Python日志器使用方法及原理解析

    这篇文章主要介绍了Python日志器使用方法及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Django 表单模型选择框如何使用分组

    Django 表单模型选择框如何使用分组

    这篇文章主要介绍了Django 表单模型选择框如何使用分组,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Django扫码抽奖平台的配置过程详解

    Django扫码抽奖平台的配置过程详解

    这篇文章主要介绍了Django扫码抽奖平台,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Python实战之多种音乐格式批量转换

    Python实战之多种音乐格式批量转换

    Pydub是一个基于ffmpeg的Python音频处理模块,封装了许多ffmpeg底层接口,因此用它来做音乐歌曲文件格式转换会非常方便。今天给大家介绍它的音乐文件格式转换功能,几乎支持所有音乐音频格式,需要的可以参考一下
    2022-06-06

最新评论