Python设置电脑桌面壁纸

其实 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()
原文地址:https://www.cnblogs.com/shiyixirui/p/14416917.html