Python设置显示屏分辨率
生活随笔
收集整理的這篇文章主要介紹了
Python设置显示屏分辨率
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
工具安裝
- 主要調用win32庫實現分辨率獲取和讀寫,需要安裝pywin32
- 示例中是從execl列表中讀取需要設置的分辨率,需要安裝xlrd
- 用到的execl分辨率列表如下:
完整腳本
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_SUCCESSFULwin32api.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设置显示屏分辨率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络原理综合实验
- 下一篇: Autodesk 3DSMax 2016