大伙儿晚上今天瞎琢磨了一天,总算是把我那个用了挺久的分辨率设置的小工具给拾掇明白了,顺便也把整个过程记录一下,分享给大家伙儿瞅瞅。
为啥要搞这个?
是这么回事儿,有时候就喜欢折腾点老游戏,或者偶尔需要快速切换一下分辨率干点别的活儿,比如临时接个投影仪啥的。系统自带那个调整分辨率的功能,也不是说不好用,但总感觉步骤多了点,尤其是我这种急性子,每次都得右键、显示设置、下拉菜单一通点,有时候选项还藏得深,挺烦人的。特别是有些时候,我想设一个特定的、不常用的分辨率,系统列表里还不一定直接就有,得去高级设置里找,费劲!
所以我就寻思着,咱能不能自己整个小工具,把常用的几个分辨率或者我想要的分辨率直接列出来,一点就能切换,岂不美哉?说干就干!
具体咋弄的?
我想得挺简单,就想着能不能用个啥脚本语言,比如Python或者AutoHotkey这种,写几行代码就完事儿。我先是上网扒拉了一下资料,看看有没有现成的命令或者库可以直接调用。
第一步:摸索怎么获取和设置分辨率。
我发现Windows系统是提供了一些接口来干这个事儿的。最开始我尝试了找一些现成的命令行小工具,确实有那么几个,可以带参数运行直接改分辨率。但我寻思,总不能每次都开个黑框框敲命令,不够直观。而且我想的是能列出当前显示器支持的所有分辨率让我选,这就得自己去读取系统信息了。
后来捣鼓了一下,发现用Python配合一些系统库(具体哪个就不细说了,免得大家觉得我在掉书袋,反正就是能跟Windows系统打交道的那种)可以获取到当前连接的显示器列表,以及每个显示器支持的分辨率模式。这个过程稍微费了点劲,主要是理解那些返回的数据结构,都是些数字和标识,得慢慢对应起来看是啥意思。
第二步:整个简单的界面。
能获取到分辨率列表,也能调用命令或者接口去设置了,下一步就是整个用户界面了。咱也不追求多华丽,实用就行。我就用了Python自带的那个Tkinter库,简单拖了几个控件:
- 一个下拉列表框,用来显示所有检测到的可用分辨率。
- 一个“刷新”按钮,万一我中途插拔了显示器或者改了啥设置,可以重新检测一下。
- 一个“应用”按钮,选好了分辨率,一点这个就设置成功。
界面布局也是最简单的那种,从上到下依次排列,一眼就能看明白怎么用。我还特意加了个小功能,就是程序启动的时候,自动获取当前分辨率,并且在下拉列表里默认选中它,这样看起来更友好一点。
第三步:整合和测试。
把获取分辨率的逻辑、设置分辨率的逻辑和界面给串起来。这个过程免不了出各种小问题。比如,一开始列表里显示的分辨率格式乱七八糟的,得处理一下让它看起来规范点,像“1920 x 1080”这样。还有就是设置分辨率之后,有些系统会弹出一个确认框问你是否保留更改,如果超时不点就会自动还原。我这个小工具嘛就没处理那么复杂了,直接设置,系统弹框就让它弹,反正我都是自己用,知道咋回事儿。
来来回回试了好几次,在我自己的几台电脑上都跑了跑,确保在不同的Windows版本(主要是Win7和Win10,我还在用老爷机,哈哈)上基本都能正常工作。有时候设置了没反应,有时候列表刷不出来,折腾了好一阵子才算稳定下来。
效果咋样?
您还别说,弄出来的这个小玩意儿,还真挺好使!现在我要换分辨率,直接点开我这个小程序,列表里清清楚楚列着当前显示器支持的所有分辨率,想换哪个,鼠标一点,再点个“应用”,‘啪’的一下,屏幕黑一下就换好了,比以前手动去系统设置里捣鼓快多了,也省心多了。
虽然这东西技术含量不高,代码也没几行,但它实实在在解决了我自己的一个小痛点。有时候,这种自己动手丰衣足食的感觉,还是挺不错的。至少以后再也不用为调个分辨率点半天鼠标了!
行了,今天就先分享到这儿,算是个简单的实践记录。希望对有类似需求的朋友有点启发。晚安各位!