我正在为自己做一个小项目,但是碰壁了。我需要在Windows 10 64位上更改桌面背景。我试图使用下面的脚本基于本地镜像更改背景。该代码可以正确执行,但是桌面只会变黑。我仔细检查过,我的图片位于c:\CuratedWallpaper\Mario.bmp,所以这不是问题。

import ctypes

directory = "c:\CuratedWallpaper"
imagePath = directory + "\Mario.bmp"

def changeBG(imagePath):
    SPI_SETDESKWALLPAPER = 20
    ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, imagePath , 0)
    return;

changeBG(imagePath)

最佳答案

我使用SystemParametersInfoW代替SystemParametersInfoA像这样:
ctypes.windll.user32.SystemParametersInfoW(20, 0, path, 3)
这是ANSI vs UNICODE路径字符串的问题。

它在Windows 10中对我有效。

10-06 08:25