Как я могу изменить свое настольное образование с Python?
Я хочу сделать это и в Windows и в Linux.
На Windows с python2.5 или более поздней версией, загрузите user32.dll с помощью стипа и вызовите SystemParametersInfo()
с помощью действия SPI_SETDESKWALLPAPER.
Например:
import ctypes
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, "image.jpg" , 0)
На рабочем столе gnome вы обычно делаете это с помощью gconf, либо напрямую вызывая gconftool, либо используя питоновый модуль gconf. Последний находится в ссылке, предоставленной unutbu. Первый метод можно сделать вот так.
import commands
command = "gconftool-2 --set /desktop/gnome/background/picture_filename --type string '/path/to/file.jpg'"
status, output = commands.getstatusoutput(command) # status=0 if success
На windows, Вам понадобится некоторая хитрость с pywin32, и windows API, на 'linux' ответ будет зависеть от того, какой рабочий стол запущен - KDE, Gnome, или что-нибудь более экзотическое. В KDE (и, возможно, Gnome) Вы, вероятно, можете послать сообщение с помощью D-Bus, что Вы можете сделать без включения новых библиотек, используя инструмент командной строки dbus-send.
Другой возможностью будет установка обоев рабочего стола в файл, который Вы затем отредактируете / замените с python - но это, вероятно, приведет к изменениям только при входе пользователя в систему.
.В gnome, вероятно, предпочтительнее напрямую использовать привязку gconf к python:
import gconf
conf = gconf.client_get_default()
conf.set_string('/desktop/gnome/background/picture_filename','/path/to/filename.jpg')