2013-06-05 21 views
6

Có ai biết cách thay đổi Windows Desktop Wallpaper bằng python sao cho thay đổi đó là vĩnh viễn? Tôi đã tìm thấy mã nàyThay đổi nền Windows từ Python

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

Mã này hoạt động, nhưng khi bạn đăng xuất và đăng nhập lại, nền sẽ trở lại hình ảnh gốc. Tôi thích một giải pháp không yêu cầu bất kỳ chỉnh sửa đăng ký nào và tôi muốn một cái gì đó hoạt động với Windows XP và 7 nếu có thể.

+0

Có thể cài đặt hình nền được đặt thành động. Thay đổi hình nền sau một thời gian. – user568109

+0

Hmmm. Tôi chạy tập lệnh python một lần nữa, nó thay đổi hình nền, nhưng hình ảnh được chọn vẫn là hình ảnh cũ ... –

+1

Tham số cuối cùng, 'fWinIni'," chỉ định xem hồ sơ người dùng có được cập nhật hay không ". Cờ là 'SPIF_UPDATEINIFILE == 1' và' SPIF_SENDCHANGE == 2'. Sau đó, chương trình phát sóng một thông báo 'WM_SETTINGCHANGE'. Hãy thử sử dụng 'fWinIni == 3'. – eryksun

Trả lời

1

Giải pháp này kết hợp một số trong những ý kiến ​​được thực hiện, và làm việc cho tôi:

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) 

(Lưu ý rằng bạn nên xác định đường dẫn tuyệt đối đến hình ảnh của bạn, và thay đổi khi cần thiết cũng chuyển bức ảnh sang BMP nếu. bạn cần phải sử dụng nó trên XP. Bạn có thể dễ dàng chuyển đổi hình ảnh using Pillow)