|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Обои на Рабочий стол (служба)
Добрый день!
Собственно, проект Service Application. Обои устанавливаются, но при новом входе в учетную запись. Из простого приложения работает, а из службы - нет. Как сделать динамически, чтобы эффект был сразу? Код:
SystemParametersInfo(SPI_SetDeskWallPaper, 0, PChar('C:\1.jpg'), SPIF_UpdateiniFile); |
#2
|
||||
|
||||
Неначем проверить, Service заблокированы для разработки, но возможно нужно заменить флажок SPIF_UpdateiniFile на SPIF_SendWinINIChange, чтоб оповестить всех о том, что изменились системные настройки
Или вот ещё вариант из drkb Код:
uses ComObj, ShlObj; procedure ChangeActiveWallpaper; const CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}'; var ActiveDesktop: IActiveDesktop; begin ActiveDesktop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop; ActiveDesktop.SetWallpaper('c:\windows\forest.bmp', 0); ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
Пробовал и так, результата нет. SPIF_SendWinINIChange тоже не работает.
|
#4
|
|||
|
|||
согласен, результат - 0
|