Как насчет создания ключа значения в реестре по адресу:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Это изменит фон, когда пользователь войдет в систему.
Чтобы попробовать, напишите этот скрипт, назовите его, например, SetDesktopBackground.py
, как угодно:
#!python
from ctypes import *
from os import path
SPI_SETDESKWALLPAPER = 0x14
SPIF_UPDATEINIFILE = 0x1
lpszImage = path.join(path.dirname(path.realpath(__file__)), 'your_image.jpg')
SystemParametersInfo = windll.user32.SystemParametersInfoA
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, lpszImage, SPIF_UPDATEINIFILE)
Не забудьте поместить изображение your_image.jpg
в тот же каталог. Затем откройте редактор реестра:
Start > Search > type regedit.exe
Затем перейдите по пути:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Щелкните правой кнопкой мыши и выберите New > String Value
и введите любое имя для этого значения.
Щелкните правой кнопкой мыши на этом новом значении и выберите Modify
, в поле Data Value
напишите:
"C:\Python26\pythonw.exe" "C:\Path\To\SetDesktopBackground.py"
Чтобы проверить это, выйдите из системы и войдите снова. Фон должен меняться, когда этот пользователь входит в систему.
Это был ручной способ сделать это, вы можете использовать _winreg в своем приложении для создайте значение во время установки:
#!python
from _winreg import *
from sys import executable
from os import path
subkey = 'Software\\Microsoft\\Windows\\CurrentVersion\\Run'
script = 'C:\\Path\\To\\SetDesktopBackground.py'
pythonw = path.join(path.dirname(executable), 'pythonw.exe')
hKey = OpenKey(HKEY_CURRENT_USER, subkey, 0, KEY_SET_VALUE)
SetValueEx(hKey, 'MyApp', 0, REG_SZ, '"{0}" "{1}"'.format(pythonw, script))
CloseKey(hKey)
person
Community
schedule
21.01.2013
from ... import *
, это не очень хороший стиль для кодирования, так как при отладке и т. д. нужно искать модули, если переменная не определена в коде. - person pradyunsg   schedule 20.01.2013