我正在为自己做一个小项目,但是碰壁了。我需要在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中对我有效。