![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|