Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Python更改Windows背景_Python_Windows_Python 2.7_Ctypes_Wallpaper - Fatal编程技术网

从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

有人知道用python更改Windows桌面墙纸的方法吗?这样更改是永久性的?我找到了这个密码

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”一开始可能是有效的,因为它是相对于进程的当前工作目录的。