Python实现设置显示屏分辨率
作者:虫无涯 发布时间:2021-05-16 01:32:36
标签:Python,显示屏,分辨率
工具安装
主要调用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
输出的结果
存在的问题
目前使用这种方式,只能设置显卡列表支持的分辨率,不支持自定义分辨率。不知道有什么更好的方式,有知道的大牛给指导下。
来源:https://segmentfault.com/a/1190000043288975


猜你喜欢
- 1. OpenCV:模板匹配。 获得小跳棋中心位置2.
- 今天有业务需要制作用户头像的需求,在网上找了个可以裁剪大图制作自己希望大小的图片的方法(基于Struts2)。特此记录一下。不废话,具体的步
- 1、说明当函数/方法执行出现异常,会将异常传递给函数/方法的调用一方。如果传递到主程序,仍然没有异常处理,程序才会被终止。2、实例def d
- UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是
- K-means(K均值)算法是最简单的一种聚类算法,它期望最小化平方误差注:为避免运行时间过长,通常设置一个最大运行轮数或最小调整幅度阈值,
- 在python中安装非自带python模块,有三种方式:1.easy_install2.pip3.下载压缩包(.zip, .tar, .ta
- 比如user_num表:例1:查询出现过2次的user往往初学者会错误地认为在where 语句里直接使用count()算法,很显然这个想法是
- YOLO是You-Only-Look-Once的缩写,它无疑是根据COCO数据集训练的最好的对象检测器之一。YOLOv4是最新的迭代版本,它
- 总体跟官方样例相似,但是官方样例因为部分代码有误无法运行,同时需要了解json,以及前后端知识需要一些时间,因此供大家参考。这个是views
- virtualenvwrapper是用来管理virtualenv的扩展包,用着很方便。1. 安装:#安装virtualenvwrapper$
- 一、前言在多进程中,每个进程之间是什么关系呢?其实每个进程都有自己的地址空间、内存、数据栈以及其他记录其运行状态的辅助数据。下面通过一个例子
- 在cmd下运行go程序或者是GOLAND的Terminal下运行go程序会出现中文乱码的情况。go run ttypemain.go����
- 前言中位数是一个可将数值集合划分为相等的上下两部分的一个数值。如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数;如果列表数据
- 现在公布方法:替换editor.js 函数 // Toolbar button onmouseup
- 准备1、下载所需安装包wget https://www.php.net/distributions/php-7.4.0.tar.gzwget
- 一、起源 因子分析的起源是这样的:1904年英
- 一、.NET Framework Data Provider for SQL Server类型:.NET Framework类库使用:Sys
- 1、打开指定的网页地址我们使用selenium进行自动化测试时,打开浏览器之后,第一步就是让浏览器访问我们指定的地址,可使用get方法实现f
- rs.open sql,conn:如果sql是delete,update,insert则会返回一个关闭的记录集,在使用过程中不要来个rs.c
- 程序用例:a=[[1,2],[4,5]]b=[0]*len(a)d=0*len(a)print("len(a)=",le