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

输出的结果

存在的问题

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

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

(0)

相关推荐

  • Python实现修改图片分辨率(附代码)

    目录 前言 环境依赖 代码 验证一下 前言 本文提供将图片分辨率调整的python代码,一如既往的实用主义. 环境依赖 ffmpeg环境安装,可以参考:windows ffmpeg安装部署 ffmpy安装: pip install ffmpy -i https://pypi.douban.com/simple 代码 不废话,上代码. #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/12/11 21:43 # @Author

  • Python批量修改图片分辨率的实例代码

    前言:处理图片需要,需把图片都转换成1920*1280的大小, python实现很方便,需要导入图片处理的Image包和匹配的glob包,很简单,代码如下: img_path = glob.glob("D:/chosed/*.jpg") path_save = "D:/closedd" for file in img_path: name = os.path.join(path_save, file) im = Image.open(file) im.thumbna

  • python 获取图片分辨率的方法

    pil版: from PIL import Image filename = r'E:\data\yangben\0.jpg' img = Image.open(filename) imgSize = img.size #图片的长和宽 print (imgSize) maxSize = max(imgSize) #图片的长边 minSize = min(imgSize) #图片的短边 print(maxSize, minSize) opencv版: img = cv2.imread(F1) sp

  • 使用Python读取安卓手机的屏幕分辨率方法

    直接代码吧: import os import sys import json import re def _get_screen_size(): '获取手机屏幕大小' size_str = os.popen('adb shell wm size').read() if not size_str: print('请安装 ADB 及驱动并配置环境变量') sys.exit() m = re.search(r'(\d+)x(\d+)', size_str) if m: return "{height

  • 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 opencv设置摄像头分辨率以及各个参数的方法

    1,为了获取视频,你应该创建一个 VideoCapture 对象.他的参数可以是设备的索引号,或者是一个视频文件.设备索引号就是在指定要使用的摄像头.一般的笔记本电脑都有内置摄像头.所以参数就是 0.你可以通过设置成 1 或者其他的来选择别的摄像头.之后,你就可以一帧一帧的捕获视频了.但是最后,别忘了停止捕获视频.使用 ls /dev/video*命令可以查看摄像头设备 2,cap.read() 返回一个布尔值(True/False).如果帧读取的是正确的,就是 True.所以最后你可以通过检查

  • linux mint 18虚拟机下设置1080P分辨率的方法

    前言:Linux mint 18发布了,但是在虚拟机下安装,发现没有1080p分辨率的选项,可能是4.4内核的原因?搜索了一下解决方法,自测可用,记录一下. 1.  创建一个shell脚本,内容如下: #!/bin/sh cvt 1920 1080 xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync xrandr --addmode Virtual

  • python脚本设置超时机制系统时间的方法

    本文为大家介绍了python脚本设置系统时间的方法,一共有两种,其一是调用socket直接发送udp包到国家授时中心,其二是调用ntplib包.我在本地电脑ping 国家授时中心地址cn.pool.ntp.org有时出现丢包,然而,二者都没有检查udp是否丢包的机制,方法一在udp丢包后一直处于阻塞状态无法退出,方法二虽然会提示超时,但是不再做其它尝试,比如重新发包,或者向同一个域名的不同IP地址发包.于是,尝试在方法一的代码基础上,增加了超时机制,并且尝试向同一个域名的不同IP地址发包. 具体

  • python脚本设置系统时间的两种方法

    本文为大家分享了两种python脚本设置系统时间的方法,供大家参考,具体内容如下 第一种方法,使用Python设置系统时间,即给系统校时 #电脑时间用了一段时间后,系统时间不准了,想更新一下 #在windows里面,更新系统时间,时常失败,而且速度很忙. #在网上拷贝的代码,发现很好用,比windows自带的实现要快. #-*- coding:utf-8 -*- import socket import struct import time import win32api TimeServer

  • C#如何动态设置屏幕分辨率

    下面就不啰嗦了,直接看代码如何解决这个问题的. 首先,大家应该明确,现在没有可用的API来给我们动态地设置屏幕分辨率,我们要实现这个需求,我们只能在C#程序中调用Win32 API 函数来解决这个问题的,这里用C#代码调用Win32 API 就涉及到一个问题的,即.NET 互操作性的问题,关于这个大家可以参考我的互操作性系列文章.这里我就不过多解释了. 我们要解决这个问题,首先大家肯定也会遇到一个经常遇到的问题,即如何获得用户的分辨率,对于这个问题,.NET中提供的单独的类给我们调用,我们可以使

  • Python request设置HTTPS代理代码解析

    之前版本的代理中,可以使用fiddler进行HTTP包的代理,但是代理HTTPS包时,执行错误 self._sslobj.do_handshake() ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) urllib或requests在打开https站点是会验证证书,简单的处理方式就是把发送https请求时把验证ssl证书关掉,即设置verify为False 具体代码设置如:

  • Python爬虫设置代理IP的方法(爬虫技巧)

    在学习Python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,这里讲述一个爬虫技巧,设置代理IP. (一)配置环境 安装requests库 安装bs4库 安装lxml库 (二)代码展示 # IP地址取自国内髙匿代理IP网站:http://www.xicidaili.com/nn/ # 仅仅爬取首页IP地址就足够一般使用 from bs4 import BeautifulSoup

  • python批量设置多个Excel文件页眉页脚的脚本

    本文实例为大家分享了python批量设置多个Excel文件页眉页脚的具体代码,供大家参考,具体内容如下 import os import openpyxl from openpyxl.worksheet.header_footer import _HeaderFooterPart xlsxFiles = (fn for fn in os.listdir('.') if fn.endswith('.xlsx')) for xlsxFile in xlsxFiles: wb = openpyxl.l

随机推荐