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

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

Обновить рабочий стол


Irinka ©   (2005-08-24 14:20:00) 

Подскажите пожалуйста, как обровить рабочий стол. Меняю в windows 2000 фон, в свойствах новая картинка есть, а на раб столе все еще старая.

обновляю рабочий стол так:

var
 Reg: TRegIniFile;
begin

Reg := TRegIniFile.Create('Control Panel');
Reg.WriteString'desktop', 'Wallpaper', 'c:\windows\Установка.jpg');
 Reg.WriteString('desktop', 'TileWallpaper', '0');
 Reg.Free;
 SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);

Пытаюсь использовать в качестве картинки jpg или bmp - исход один.


Irinka   (2005-08-29 05:48:00) [1]

Все решила гораздо проще: оставила свой код обновления рабочего стола, затем сначала выключила, а за тем включила ActiveDesktop и у меня тут же обновилась картинка на рабочем столе :-)


Irinka   (2005-08-26 05:16:00) [2]

При выключеном Desktop с bmp файлами получается. Теперь возникает вопрос как программно отключать и включать Desktop?


Jeer   (2005-08-25 18:10:00) [3]

Не знаю, где Вы куролесите, но прекрасно работает на w2k и xp при выключенном Active Desktop.


Irinka   (2005-08-25 14:51:00) [4]

:-( даже в свойствах не появляется bmp картинка :-(


Jeer   (2005-08-25 14:42:00) [5]

Все прекрасно работает с *.bmp

if OpenDialog1.Execute then
  SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar(OpenDialog1.FileName),
                       SPIF_SENDCHANGE);


Irinka   (2005-08-25 14:39:00) [6]

Как же все таки поменять картинку на рабочем столе чтобы она сразу обновилась? И так чтобы можно было использовать jpg картинки?


ArtemESC   (2005-08-25 14:25:00) [7]

Да глюки бывают...
у TWallpaper есть еще свойство Stretch, установи в
False - только во время выполнения программы. У меня после
этого все стало работать..

Похоже для jpg файлов это опция (Stretch) не работает....


Irinka   (2005-08-25 13:55:00) [8]

с файлами bmp работает так же как мой код: в свойствах картинка есть, а на рабочем столе все еще старая. А с флами jpg вообще ничего не происходит. В моем примере одинакой эффект и стеми и с другими файлами :-(


ArtemESC   (2005-08-25 13:44:00) [9]

примерчик...
1) кидаешь TWallpaper на форму
2) TWallpaper.Wallpaper = C:\Documents and Settings\Артем\Local Settings\Application Data\Microsoft\Wallpaper1.bmp

Вообще, должно работать...


Irinka   (2005-08-25 05:41:00) [10]

ArtemESC, простите меня глупую, не покажите ли примерчик использования этого компонента? :-)


ArtemESC   (2005-08-24 20:28:00) [11]

А лучше сходи на torry.net и скачай
компанент TWallpaper


ArtemESC   (2005-08-24 18:32:00) [12]

Попрубуй так...
uses
ComObj, ShlObj;

procedure ChangeWallpaper;
const
I : TGuid = '{75048700-EF1F-11D0-9888-006097DEACF9}';
var
AD: IActiveDesktop;
begin
AD := CreateComObject(I) as IActiveDesktop;
AD.SetWallpaper('C:\bm.bmp', 0);
AD.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
end;


Jeer   (2005-08-24 17:13:00) [13]

Active Desktop - enabled
иначе только bmp


Irinka   (2005-08-24 14:49:00) [14]

К сожалению этот пример вообще не обновляет ничего, даже в свойствах старая картинка :-(


Jeer   (2005-08-24 14:33:00) [15]

Так как делаешь ты - только через перезагрузку.
Иначе
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar(filename),
                        SPIF_SENDCHANGE);


Наверх

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