如何使用python设置桌面背景[重复]

Posted

技术标签:

【中文标题】如何使用python设置桌面背景[重复]【英文标题】:How to set a desktop background with python [duplicate] 【发布时间】:2021-10-02 15:48:35 【问题描述】:

当您运行此代码时,将会有一个包含 2 个按钮的应用程序。如果单击“本地文件”之一,将弹出窗口资源管理器。现在我想知道当你在资源管理器中选择一张图片时,程序会将它设置为你的windows桌面背景。

import tkinter as tk
from tkinter import filedialog, Text
import os

root = tk.Tk()
canvas = tk.Canvas(root, height=500, width=900)
canvas.pack()

def addImage():
    slika = filedialog.askopenfile(initialdir="\n", title="Izberi sliko", 
        filetypes=(("JPEG", "*.jpeg"), ("PNG","*.png"), ("all files", "*.*")))

selectImage = tk.Button(root, text="Local image", padx=10, pady=5, fg="white", bg="#f6c1ff", command=addImage)
selectImage.pack()

ourLibrary = selectImage = tk.Button(root, text="WPManager library", padx=10, pady=5, fg="white", bg="#f6c1ff")
selectImage.pack()

root.mainloop()```

【问题讨论】:

these answers 中的一些可能有用 【参考方案1】:

编辑:在您的情况下,使用 slika.name 访问所选文件的完整路径

任一:

将相关图片复制到C:\Users\wolf3\AppData\Roaming\Microsoft\Windows\Themes\CachedFiles

您可能还想检查并删除C:\Users\wolf3\AppData\Roaming\Microsoft\Windows\Themes\TranscodedWallpaper(如果存在)。

最后,拨打os.system("rundll32.exe user32.dll, UpdatePerUserSystemParameters"),几次(3 次左右,我发现它比一次更新更可靠),你的壁纸应该已经更新了。

OR B:

import ctypes
SPI_SETDESKWALLPAPER = 20 
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, "image.jpg" , 0)

来自 How can I change my desktop background with python?

注意:

根据个人经验和上述问题中的 cmets,.bmp 文件肯定可以使用这些方法,不幸的是我不能保证任何其他方法都能始终如一地工作。

【讨论】:

我已经用 jpg 尝试过这种方法,他们倾向于工作 我已经尝试过了,但它不起作用。我不知道在“image.jpg”中放什么,因为我需要以某种方式存储用户选择的背景,然后进行设置。 @Jackzy 使用一个变量,就是python的基础,如果你不明白那好吧,我不知道,你需要学习一些基础的python教程 我试过了,但没用。我知道顺便说一句,我是 python 新手,但我学了一些基础课程。 使用 slika.name 访问所选文件的完整路径

以上是关于如何使用python设置桌面背景[重复]的主要内容,如果未能解决你的问题,请参考以下文章

VC++如何获取并保存桌面背景?

怎么设置电脑桌面默认图片

怎么把bing 搜索的背景图片或动态图设置成win 10 桌面壁纸, 且桌面壁纸要与bing搜索更新保持同步

使用 Python 更改桌面背景

Python - 快速更改桌面背景

windows 2008 r2 域环境下桌面统一背景