網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
工具安裝
主要調(diào)用win32庫(kù)實(shí)現(xiàn)分辨率獲取和讀寫,需要安裝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è)置分辨率后拉伸畫面,否則切換到小分辨率時(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)下。
原文鏈接:https://segmentfault.com/a/1190000043288975
相關(guān)推薦
- 2022-06-28 python神經(jīng)網(wǎng)絡(luò)使用Keras進(jìn)行模型的保存與讀取_python
- 2022-05-05 .NetCore手動(dòng)封裝日志組件的實(shí)現(xiàn)代碼_實(shí)用技巧
- 2022-04-25 Entity?Framework?Core實(shí)現(xiàn)軟刪除與查詢過(guò)濾器_實(shí)用技巧
- 2022-07-30 go語(yǔ)言中slice,map,channl底層原理_Golang
- 2022-04-05 Android判斷是否Root方法介紹_Android
- 2022-07-15 在SQL?Server中使用子查詢更新語(yǔ)句_MsSql
- 2022-08-10 pandas.DataFrame.iloc的具體使用詳解_python
- 2022-05-25 Properties的遍歷幾種方式
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支