从Python更改Windows背景
有人知道用python更改Windows桌面墙纸的方法吗?这样更改是永久性的?我找到了这个密码从Python更改Windows背景,python,windows,python-2.7,ctypes,wallpaper,Python,Windows,Python 2.7,Ctypes,Wallpaper,有人知道用python更改Windows桌面墙纸的方法吗?这样更改是永久性的?我找到了这个密码 import ctypes SPI_SETDESKWALLPAPER = 20 ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, "myimage.jpg" , 0) 这段代码可以工作,但一旦您注销并再次登录,背景就会恢复到原始图像。我更喜欢一个不需要任何注册表编辑的解决方案,如果可能的话,我想要一个可以与Win
import ctypes
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, "myimage.jpg" , 0)
这段代码可以工作,但一旦您注销并再次登录,背景就会恢复到原始图像。我更喜欢一个不需要任何注册表编辑的解决方案,如果可能的话,我想要一个可以与Windows XP和7一起使用的解决方案。此解决方案结合了一些评论,适合我:
import ctypes
import os
drive = "C:\\"
folder = "images"
image = "test.jpg"
image_path = os.path.join(drive, folder, image)
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, image_path, 3)
(请注意,您应该确定图像的绝对路径,并根据需要进行更改。如果需要在XP上使用,还可以将图像转换为BMP。您可以轻松地转换图像)可能是壁纸设置设置为动态。一段时间后更换壁纸。嗯。我再次运行python脚本,它更改了背景图像,但选择的图像仍然是旧图像…最后一个参数,
fWinIni
,“指定是否更新用户配置文件”。标志是SPIF\u UPDATEINIFILE==1
和SPIF\u SENDCHANGE==2
。后者广播WM_SETTINGCHANGE
消息。尝试使用fWinIni==3
@eryksun将其更改为3会导致我的背景在下次登录时变为黑色。桌面背景窗口显示我的背景现在是一个名为myimage的文件,它是一个黑色窗口。是否使用绝对路径?“myimage.jpg”一开始可能是有效的,因为它是相对于进程的当前工作目录的。