2013-06-05 9 views
6

Windows Masaüstü Duvar Kağıdı'nı python ile değiştirmenin bir yolu var mı, böylece değişiklik kalıcı mı? Bu koduPython'dan Windows Arkaplanını Değiştir

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

Bu kod çalışır, ancak oturumu kapatın ve tekrar oturum kez, arka plan orijinal görüntüye olduğunu bulduk. Herhangi bir kayıt defteri düzenleme gerektirmeyen bir çözümü tercih ederim ve eğer mümkün ise Windows XP ve 7 ile çalışan bir şey isterim.

+0

Duvar kağıdı ayarı dinamik olarak ayarlanmış olabilir. Bir süre sonra duvar kağıtları değiştirir. – user568109

+0

Hmmm. Python betiğini tekrar çalıştırdım, arka plan görüntüsünü değiştirir, ancak seçilen resim hala eski görüntüdür ... –

+1

Son parametre olan "fWinIni", "kullanıcı profilinin güncellenip güncellenmeyeceğini belirtir". Bayraklar "SPIF_UPDATEINIFILE == 1" ve "SPIF_SENDCHANGE == 2". İkincisi bir "WM_SETTINGCHANGE" mesajını yayınlar. 'FWinIni == 3' kullanmayı deneyin. – eryksun

cevap

1

Bu çözüm yapılmış yorumların çeşitli birleştirir ve benim için çalışıyor:

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) 

(Eğer resmi mutlak yolunu belirlemek ve değiştirmek gerektiğinde Ayrıca eğer BMP görüntüyü dönüştürmek gerektiğini unutmayın. XP'de kullanmanız gerekir. Görüntüyü kolayca dönüştürebilirsiniz

İlgili konular