2013-06-05 4 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

Hmmm。私は再び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

関連する問題