2013-06-11 72 views
1

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

ctypes.windll.user32.SystemParametersInfoA(20, 0, picture_path, 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 
} 

,然后从蟒蛇调用PowerShell的功能:

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

我不需要使用Powershell,只是将背景更改作为不同的python文件引入,并使用子进程在后台运行它!谢谢! –

+0

@ user1019250:您是否使用'_winreg'来修改注册表?如果你退出,你可以通过ctypes调用'SystemParametersInfoA'来更新用户配置文件中的最终图像。 – eryksun

0

看一看this。 他们只使用位图,但有功能转换图像如here所示。

+0

我的问题是SystemParametersInfoA没有足够快地更新背景 - 如果我试图每秒更新一次图片(即使图片已经保存并且我知道路径),那么会有一个(很显着的)延迟。我不会立即看到如何解决这个问题。 –

+0

第一个链接已经死亡。 – nerdwaller