Python實(shí)現(xiàn)設(shè)置顯示屏分辨率
工具安裝
主要調(diào)用win32庫(kù)實(shí)現(xiàn)分辨率獲取和讀寫(xiě),需要安裝pywin32
示例中是從execl列表中讀取需要設(shè)置的分辨率,需要安裝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('常見(jiàn)分辨率.xlsx') # 打開(kāi)表格
q = book1.sheet_by_index(0) # 使用索引的方式獲取sheet1工作簿
i = 0
while(i<=5):
print("第%d次設(shè)置"%i)
mwidth = str(q.cell_value(i+1,0)) # 獲取單元格中的值
nwidth = mwidth.split(".")[0] # 獲取的值為float,轉(zhuǎn)換成字符串然后進(jìn)行分割取整
WidthSet = int(nwidth) # 從表格中獲取的分辨率寬的值
#print(WidthSet)
mhigth = str(q.cell_value(i+1,1)) # 獲取單元格中的值
nhigth = mhigth.split(".")[0] # 獲取的值為float,轉(zhuǎn)換成字符串然后進(jìn)行分割取整
HeightSet = int(nhigth) # 從表格中獲取的分辨率寬的值
#print(HeightSet)
ResoLutionSet = win32api.EnumDisplaySettings(None, 0) # 調(diào)用win32api接口,獲取顯示設(shè)備信息
ResoLutionSet.PelsHeight = HeightSet # 設(shè)置分辨率高
ResoLutionSet.PelsWidth = WidthSet # 設(shè)置分辨率寬
print("設(shè)置的分辨率寬: %d, 設(shè)置的分辨率高: %d, 即設(shè)置的分辨率為:%d x %d" % (WidthSet, HeightSet, WidthSet, HeightSet))
ResoLutionSet.BitsPerPel = 32 # 顯示設(shè)備的顏色分辨率
ResoLutionSet.DisplayFixedOutput = 2 # 設(shè)置分辨率后拉伸畫(huà)面,否則切換到小分辨率時(shí),屏幕只在中間一小塊
if (win32api.ChangeDisplaySettings(ResoLutionSet, 0)) == 0: # DISP_CHANGE_SUCCESSFUL
win32api.ChangeDisplaySettings(ResoLutionSet, 0) # 設(shè)置生效
else:
win32api.ChangeDisplaySettings(None, 0) # 恢復(fù)默認(rèn)
screenNum = win32api.GetSystemMetrics(win32con.SM_CMONITORS)
print("顯示設(shè)備的總數(shù)量為: %d" % screenNum)
aScreenWidth = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
aScreenHeight = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
print("當(dāng)前屏幕總的分辨率為:%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輸出的結(jié)果

存在的問(wèn)題
目前使用這種方式,只能設(shè)置顯卡列表支持的分辨率,不支持自定義分辨率。不知道有什么更好的方式,有知道的大牛給指導(dǎo)下。
到此這篇關(guān)于Python實(shí)現(xiàn)設(shè)置顯示屏分辨率的文章就介紹到這了,更多相關(guān)Python設(shè)置顯示屏分辨率內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)繪圖散點(diǎn)圖(scatter)
這篇文章主要介紹了Python實(shí)現(xiàn)繪圖散點(diǎn)圖方式(scatter),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
使用Python生成F分布表并導(dǎo)出為Excel文件的代碼實(shí)現(xiàn)
在統(tǒng)計(jì)分析中,F FF分布是一種非常重要的連續(xù)概率分布,廣泛應(yīng)用于方差分析、回歸分析的顯著性檢驗(yàn)等場(chǎng)景,為了方便查閱和使用F分布的臨界值,本文給大家介紹了使用Python生成F分布表并導(dǎo)出為Excel文件,需要的朋友可以參考下2024-11-11
Python設(shè)計(jì)模式中的狀態(tài)模式你了解嗎
這篇文章主要為大家詳細(xì)介紹了Python設(shè)計(jì)模式中的狀態(tài)模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02
python判斷一個(gè)集合是否包含了另外一個(gè)集合中所有項(xiàng)的方法
這篇文章主要介紹了python判斷一個(gè)集合是否包含了另外一個(gè)集合中所有項(xiàng)的方法,涉及Python集合操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06
Python 實(shí)現(xiàn)簡(jiǎn)單的客戶端認(rèn)證
這篇文章主要介紹了Python 如何實(shí)現(xiàn)簡(jiǎn)單的客戶端認(rèn)證,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
python接口自動(dòng)化之使用token傳入到header消息頭中
這篇文章主要介紹了python接口自動(dòng)化之使用token傳入到header消息頭中問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Django掃碼抽獎(jiǎng)平臺(tái)的配置過(guò)程詳解
這篇文章主要介紹了Django掃碼抽獎(jiǎng)平臺(tái),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Python實(shí)戰(zhàn)之多種音樂(lè)格式批量轉(zhuǎn)換
Pydub是一個(gè)基于ffmpeg的Python音頻處理模塊,封裝了許多ffmpeg底層接口,因此用它來(lái)做音樂(lè)歌曲文件格式轉(zhuǎn)換會(huì)非常方便。今天給大家介紹它的音樂(lè)文件格式轉(zhuǎn)換功能,幾乎支持所有音樂(lè)音頻格式,需要的可以參考一下2022-06-06

