2013-06-05 57 views
6

有誰知道用python更改Windows桌面壁紙的方法,以便更改是永久性的嗎?我發現此代碼從Python更改Windows背景

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

此代碼有效,但是一旦您註銷並再次登錄,背景將回到原始圖像。我更喜歡不需要任何註冊表編輯的解決方案,並且我希望可以使用Windows XP和7的某些功能。

+0

難道是壁紙設置設置爲動態。一段時間後更改壁紙。 – user568109

+0

嗯。我再次運行python腳本,它更改背景圖像,但所選圖像仍舊是舊圖像... –

+1

最後一個參數「fWinIni」指定是否更新用戶配置文件。這些標誌是'SPIF_UPDATEINIFILE == 1'和'SPIF_SENDCHANGE == 2'。後者廣播「WM_SETTINGCHANGE」消息。嘗試使用'fWinIni == 3'。 – eryksun

回答

1

該解決方案結合了幾個提出的意見,以及對我的作品:

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) 

(請注意,你應該確定的絕對路徑,以你的形象,並根據需要進行更改也將圖像轉換爲BMP如果。你需要在XP上使用它,你可以很容易地轉換圖像using Pillow