我使用这篇文章中提供的解决方案来从Python更改Windows桌面壁纸。
以下是代码示例:
import ctypes
import os
image_file = "myimage.jpg"
print("Setting the wallpaper")
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, os.path.abspath(image_file) , 0)
问题在于更改不是持久性的,也就是说每次我重启电脑时桌面壁纸都会重置。如何使用Python持久性地更改Windows桌面壁纸?
我使用的是 Python 3.5。
user32 = ctypes.WinDLL('user32', use_last_error=True)
代替ctypes.windll.user32
。检查成功与否,如果失败则抛出ctypes.WinError(ctypes.get_last_error())
异常,以便调用方可以处理异常,而不是盲目地假装一切都很好。 - Eryk SunSystemParametersInfo
的fWinIni
参数文档来解决它。 - Eryk Sunwinuser.h
中,它被定义为等于 1。 我们可以假定这个值在未来版本中永远不会改变吗,即使它没有在文档中指定? - robertspierre