其实 Python 设置电脑桌面壁纸是很简单的,主要是调用 win32gui 这个库来实现的
代码如下:
import win32gui def setWindowsImage(imgPath): win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, imgPath, win32con.SPIF_SENDWININICHANGE)
亲测是有效的,我们可以对这个功能扩展一下,写一个可以自动切换壁纸的脚本
import win32api import win32con import win32gui import time from pathlib import Path import random def Windows_img(paperPath): # 读取注册表 # k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, ‘Control panel\\Desktop‘, 0, win32con.KEY_SET_VALUE) # 在注册表中写入属性值: 0: 居中, 2: 拉伸,6:适应,10:填充 # win32api.RegSetValueEx(k, ‘wapaperStyle‘, 0, win32con.REG_SZ, ‘2‘) # 在注册表中写入属性值: 0: 拉伸居中, 1: 平铺 # win32api.RegSetValueEx(k, ‘Tilewallpaper‘, 0, win32con.REG_SZ, ‘0‘) # 刷新桌面 win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, paperPath, win32con.SPIF_SENDWININICHANGE) # 更换壁纸 def changeWallpaper(): # 间隔时间,壁纸路径 changeTime = 1 path = r‘d:\a‘ p = Path(path) imgs = list(p.glob(‘**/*.jpg‘)) wall_papers = [] for img in imgs: wall_papers.append(str(img)) # 随机打乱顺序 random.shuffle(wall_papers) num = 0 while True: Windows_img(wall_papers[num]) time.sleep(changeTime) num += 1 if num == len(wall_papers): num = 0 if __name__ == ‘__main__‘: changeWallpaper()
由于在测试时,发现 修改注册表不成功,所以直接就注释了注册表单的操作
原文:https://www.cnblogs.com/shiyixirui/p/14416917.html