使用 Python 更改桌面背景

Changing desktop background with Python

我一直在尝试使用 Python 2.7 更改桌面背景:

SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, pngName, 0)

(虽然 pngName 是图像的有效路径)

当我 运行 脚本没有任何变化,当我用不同的图像尝试它时它工作得很好。

有什么建议吗?

p.s。 有人可以解释一下该脚本是如何工作的吗?不知从哪里拿来的,不是很懂。

谢谢!

不要使用 png 文件(我相信你正在使用它们,因为图像路径的变量名称是 pngName),请尝试 jpg. MS Windows 似乎不支持 png 作为背景图像格式(作为 Linux/Mac 用户,我自己无法确认,但请参阅此 discussion 了解更多详细信息)。

关于你的脚本是如何工作的,我可以简单地说它使用 ctypes Python package that allows you to call functions in dlls/shared libraries such as SystemParametersInfo. SystemParametersInfo (see MSDN page) retrieves/sets 一些系统范围参数的值,包括设置桌面参数,如墙纸文件。请参阅示例三 here 了解更多信息。