【问题标题】:Change Windows Background from Python从 Python 更改 Windows 背景
【发布时间】:2013-06-05 15:20:42
【问题描述】:

有谁知道用 python 更改 Windows 桌面壁纸的方法,以便永久更改?我找到了这段代码

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

此代码有效,但一旦您注销并再次登录,背景将恢复为原始图像。我更喜欢不需要任何注册表编辑的解决方案,如果可能的话,我想要适用于 Windows XP 和 7 的解决方案。

【问题讨论】:

  • 可能是壁纸设置为动态。一段时间后更换壁纸。
  • 嗯。我再次运行python脚本,它改变了背景图像,但选择的图像仍然是旧图像......
  • 最后一个参数fWinIni“指定是否要更新用户配置文件”。标志是SPIF_UPDATEINIFILE == 1SPIF_SENDCHANGE == 2。后者广播WM_SETTINGCHANGE 消息。尝试使用fWinIni == 3
  • @eryksun 将其更改为 3 会导致我的背景在下次登录时变黑。桌面背景窗口显示我的背景现在是一个名为 myimage 的文件,它是一个黑色窗口。
  • 使用的是绝对路径吗? “myimage.jpg”一开始可能会起作用,因为它与您进程的当前工作目录相关。

标签: python windows python-2.7 ctypes wallpaper


【解决方案1】:

这个解决方案结合了几个制作的 cmets,对我有用:

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。您可以轻松转换图片using Pillow

【讨论】:

    猜你喜欢
    • 2019-05-21
    • 2021-05-27
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    相关资源
    最近更新 更多