2013-06-11 99 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