Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не обновляются обои на рабочем столе под win2000. [D5, Win2k]


Vovas ©   (2002-05-18 12:47:00) 

Помогите, плиз.

Программа в темп каталог windows записывает новые обои и меняет их на рабочем столе с помощью команды:

SystemParametersInfo(SPI_SETDESKWALLPAPER,0,PChar(TempImg),SPIF_SENDWININICHANGE);

Под win95 все работает отлично, а вот под win 2000 - ничего не меняет.

Вместо SPIF_SENDWININICHANGE ставил SPIF_UPDATEWININICHANGE - не помогло.

Кто знает в чем трабл - помогите !!!


Mover   (2002-05-20 13:13:00) [1]

procedure ChangeActiveWallpaper(const FileName: String);
const
CLSID_ActiveDesktop: TGUID = "{75048700-EF1F-11D0-9888-006097DEACF9}";
var
Path: array[0..MAX_PATH] of WideChar;
begin
with CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop do begin
SetWallpaper(StringToWideChar(FileName, Path, MAX_PATH), 0);
ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
end;
end;


still   (2002-05-20 12:35:00) [2]

У меня вот так работает под NT4. под Win2k не пробовал, но по идее должно работать.
p := PChar("c:\temp\mywallpaper.bmp");
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, p, SPIF_UPDATEINIFILE+SPIF_SENDCHANGE);


Наверх

Титульная страница Поиск, карта сайта Написать письмо