其实 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()
















