网络编程
位置:首页>> 网络编程>> Python编程>> Python实现设置显示屏分辨率

Python实现设置显示屏分辨率

作者:虫无涯  发布时间:2021-05-16 01:32:36 

标签:Python,显示屏,分辨率

工具安装

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

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

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

Python实现设置显示屏分辨率

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实现设置显示屏分辨率

存在的问题

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

来源:https://segmentfault.com/a/1190000043288975

0
投稿

猜你喜欢

  • python虚拟环境迁移:注意事项:直接将虚拟环境复制到另一台机器,直接执行是会有问题的。那么可以采用以下办法:思路:将机器1虚拟环境下的包
  • 左右结构是平常页面中最经常看到的结构,简洁一些的页面就会使用边框将左右两边隔开,但往往由于左右两边的内容可能是不等高的,所以就会有一高一低的
  • 请问鼠标移过去就出现二级菜单代码怎么写啊    <head><style type="tex
  • 不知不觉2008已经走到了尽头,在这近一年中,一直不断的尝试用ExtJS做项目,从1.1到现在的2.2,吃了不少苦头,也有不少收获,总结一
  • class MyClass():  # 直接将属性定义在类中,这种属性称为 类属性  # 类属性可以通过实列对象和类对象
  • 要想更好的理解 css, 尤其是 IE 下对 css 的渲染,haslayout 是一个非常有必要彻底弄清除的概念。大多IE下的显示错误,就
  • 微软最近出了个 必应bing 缤纷桌面,使用下来还是不错,可以每天更换Bing首页的北京作为壁纸,但是该软件有个不好的地方是,安装后桌面上会
  • IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来,这里的CSS属性可以是元素固
  • 一、Pandoc转换1.1 问题由于我们markdown编辑器比较特殊,一般情况下,我们不太好看,如果转换成pdf的话,我们就不需要可以的去
  • 最近基于selenium写了一个python小工具,记录下学习记录,自己运行的环境是Ubuntu 14.04.4, Python 2.7,C
  • 前言:        上一篇讲了Python排序问题中比较经典的三个方法,(链接:关于Python排
  • 我有个需求就是抓取一些简单的书籍信息存储到mysql数据库,例如,封面图片,书名,类型,作者,简历,出版社,语种。我比较之后,决定在亚马逊来
  • python 容器总结整理list可变数组tuple不可变数组dict键值对(key-value)的字典(dictionary)初始化:a=
  • 人们对于产品设计这类事情,往往容易眼高手低,在宇宙层面上夸夸其谈,却落不了地,只能飘着。真正到了自己动手的时候,才会发现问题很多,实践和理论
  • 见下表:序号保留字序号保留字序号保留字1ADD80ESCAPE159OR2ABSOLUTE81EXCEPT160ORDER3ACTION82
  • 这个项目到一开始的kickoff到现在,持续了很长的一段时间,现在差不多也接近了尾声,所以要好好做个总结,下面不会设计到太多技术层面上的东西
  • 前文主要纠正title用法上的几点误区,其实除链接和表单的常规标签用法。在内容组织方面还有大潜力待发掘,比如写网志经常会有针对词、短语说明的
  • 我已安装了WINDOWS NT OPTON PACK 中的SMTP Service,请问如何使用它的发送邮件功能?在安装了SMTP Serv
  • 目录需求分析进一步分析再进一步分析代码实现我们在写爬虫的过程中,除了研究反爬之外,几乎全部的时间都在写解析逻辑。那么,生命苦短,为什么我们不
  • 简介:外部连接和自联接inner join(等值连接) 只返回两个表中联结字段相等的行left join(左联接) 返回包括左表中的所有记录
手机版 网络编程 asp之家 www.aspxhome.com