其实 Python 设置电脑桌面壁纸是很简单的,主要是调用 win32gui 这个库来实现的
代码如下:
import win32api import win32con import win32gui def setWindowsImage(imgPath): # 打开注册表 k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, 'Control panel\Desktop', 0, win32con.KEY_ALL_ACCESS) # 设置项值 win32api.RegSetValueEx(k, 'Wallpaper', 0, win32con.REG_SZ, '2') win32api.RegSetValueEx(k, 'TileWallpaper', 0, win32con.REG_SZ, '0') # 关闭注册表 win32api.RegCloseKey(k) # 刷新桌面 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_ALL_ACCESS) # 设置项值 win32api.RegSetValueEx(k, 'Wallpaper', 0, win32con.REG_SZ, '2') win32api.RegSetValueEx(k, 'TileWallpaper', 0, win32con.REG_SZ, '0') # 关闭注册表 win32api.RegCloseKey(k) # 刷新桌面 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()