我正在尝试将图像制作为桌面图像 我的图片路径:
#Image Path
import random,os
folder= r"C:\\Users\rkp10\AppData\Local\Google\Chrome\User Data\Default\Extensions\laookkfknpbbblfpciffpaejjkokdgca\0.91.6_0\backgrounds"
a=random.choice(os.listdir(folder))
print(a)
打开图像:
#Opening the Image
from PIL import Image
file = folder+'\\'+a
Image.open(file).show()
将图像作为我的桌面图像:
#Making the image as desktop image
import ctypes
image_path = file
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, image_path, 3)
现在的问题是找到图像路径并且它还会打开图像。但是不是将打开的图像设置为桌面图像,而是将桌面图像设置为黑色。
答案 0 :(得分:1)
这将诀窍:
import random,os
import ctypes
folder= r"C:\Users\rkp10\AppData\Local\Google\Chrome\User Data\Default\Extensions\laookkfknpbbblfpciffpaejjkokdgca\0.91.6_0\backgrounds"
a=random.choice(os.listdir(folder))
print(a) file = folder+ '\\' +a
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER , 0, file, 3)
你的文件夹变量
中有一个“\”答案 1 :(得分:0)
这篇文章:SystemParametersInfo sets wallpaper completly black (using SPI_SETDESKWALLPAPER)我想解释这个问题。 似乎Win32Api是为C编写的,因此需要特定格式的字符串 - 空终止的char数组。
不完全确定如何在Python中传递这样的数据,但希望这会指向正确的方向
答案 2 :(得分:0)
不是黑色,而是您的背景变实。转到背景设置,将背景设置为黑色以外的纯色。然后,将背景更改为图片。现在,运行您的代码。您将看到问题是它变为纯色,而不是黑色图像。
答案 3 :(得分:0)
下一个解决方案也有帮助:
import os
import ctypes
folder = r"C:\folder"
file_name = r"back.jpg"
full_path = os.path.join(folder, file_name)
wallpaper = bytes(full_path, 'utf-8')
ctypes.windll.user32.SystemParametersInfoA(20, 0, wallpaper, 3)