Python - 快速更改桌面背景

时间:2013-06-11 15:15:20

标签: python windows performance background ctypes

我想知道是否有任何方法 - 在Python中 - 快速更改Windows 7计算机的桌面背景。现在我正在使用:

ctypes.windll.user32.SystemParametersInfoA(20, 0, picture_path, 0)

虽然这有效,但速度不是很快。我想知道是否有某种方法可以在不到一秒的时间内更新后台。

谢谢!

编辑 - 值得注意的是,我的目标是在许多已知图像之间快速改变背景。

2 个答案:

答案 0 :(得分:1)

如果您知道如何使用PowerShell,可以尝试使用PowerShell函数来更改背景图像(http://social.technet.microsoft.com/Forums/en-US/w7itproui/thread/72a9b4bf-071b-47cd-877d-0c0629a9eb90):

Function Set-WallPaper($Value)
{
 Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name wallpaper -value $value
 rundll32.exe user32.dll, UpdatePerUserSystemParameters
}

然后从python中调用PowerShell函数:

import subprocess
subprocess.Popen([r'path/to/PowerShell/script.exe',
                         '-ExecutionPolicy',
                         'Unrestricted',
                         'path/to/background_image.png'], cwd=os.getcwd())

答案 1 :(得分:0)

看看this。 它们仅使用位图,但有一些函数可以转换图像,如here所示。