最近后台老有人问我,说网上那些壁纸软件要么广告多,要么动不动就弹窗让你开会员,烦得很。其实这事真没那么复杂,今天我就把自己折腾过的Python自制桌面壁纸软件的完整思路写出来,代码量不大,几十行就能跑起来。你不需要什么编程底子,跟着复制粘贴改一改,半小时之内就能让电脑每隔一段时间自动换一张壁纸。我用的就是最普通的 Windows 环境,Python 版本 3.9 以上都行,下面说的坑我都踩过,你照着做基本能避开。
很多人一上来就找源码,结果运行报错又不知道哪出问题。Python自制桌面壁纸软件的核心其实就两件事:一是让程序能读取你放壁纸的文件夹,二是调用系统接口把图片设成桌面背景。Windows 下用 ctypes 调 SystemParametersInfo 这个 API 就行,不用装额外的库。壁纸文件夹你自己建一个,比如 D:\壁纸,里面塞满 JPG 或 PNG。我一开始傻乎乎地把图片放在中文路径下,结果读取老出问题,后来换成纯英文路径就没事了,这点你注意下。另外图片尺寸最好和屏幕分辨率差不多,不然拉伸得难看。
还有个小细节,Python自制桌面壁纸软件如果要定时切换,得用 time.sleep 或者 schedule 库。我图省事直接写了个 while True 加 sleep,跑起来也没毛病。你要是想让它开机自启,把 py 文件打包成 EXE 再丢进启动文件夹就行,后面我会提一嘴怎么打包。

先建一个 py 文件,名字随便,我一般叫 wallpaper.py。开头导入 os、random、ctypes 和 time。然后定义一个函数 set_wallpaper,里面用 ctypes.windll.user32.SystemParametersInfoW 传参,参数 20 表示设置壁纸,0 是路径,3 是立即生效。路径记得用 os.path.abspath 转成绝对路径,不然容易失败。接着写主循环:用 os.listdir 列出文件夹里所有图片,random.choice 随机挑一张,调用设置函数,然后打印一句“已切换”,再 sleep 个 300 秒。就这么多,真的。Python自制桌面壁纸软件最朴素的版本就完成了。
我试过用 PIL 库去压缩图片再设置,结果反而多此一举,系统自己会处理缩放。你要是想加个快捷键暂停切换,可以引入 keyboard 库监听按键,不过那属于进阶玩法,新手先把基础版跑通再说。运行的时候如果报权限错误,右键用管理员身份打开命令行再执行就行,这个坑我卡了十分钟。

代码跑通之后,你肯定不想每次都开命令行。用 pyinstaller 一行命令就能打包:pyinstaller -F -w wallpaper.py。出来的 exe 在 dist 文件夹里,双击就能用,还没有黑框。Python自制桌面壁纸软件打包完体积大概十几兆,发给朋友也能直接跑。不过注意,打包时壁纸文件夹路径要写死或者做成配置文件,不然换台电脑就找不到图了。我后来加了个简单的 INI 读取,让用户自己填路径,稍微麻烦点但更灵活。
另外你可以把 sleep 时间改成从配置文件读,比如 60 秒、300 秒、1800 秒自己选。还有个小技巧,把壁纸文件夹里的图片按名字排序,然后按顺序切换而不是随机,这样能搞出轮播的效果。我现在的Python自制桌面壁纸软件就是顺序切换,配上几十张风景图,办公的时候心情都好不少。最后提醒一句,别把文件夹塞太多高清大图,不然每次切换会卡一下,压缩到 1920 宽就够用了。

好了,整个流程就这么些。你照着做一遍,基本能拥有一个干净无广告、完全按自己想法来的壁纸切换工具。代码我故意没贴全,因为每个人文件夹路径不一样,你按上面说的自己敲一遍反而记得牢。遇到报错先看路径和权限,九成问题都出在这俩地方。