Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.05;
Скачать: CL | DM;

Вниз

Обновить рабочий стол   Найти похожие ветки 

 
Irinka ©   (2005-08-24 14:20) [0]

Подскажите пожалуйста, как обровить рабочий стол. Меняю в 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 - исход один.


 
Jeer ©   (2005-08-24 14:33) [1]

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


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

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


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

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


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

Попрубуй так...
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;


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

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


 
Irinka ©   (2005-08-25 05:41) [6]

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


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

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

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


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

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


 
ArtemESC   (2005-08-25 14:25) [9]

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

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


 
Irinka ©   (2005-08-25 14:39) [10]

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


 
Jeer ©   (2005-08-25 14:42) [11]

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

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


 
Irinka ©   (2005-08-25 14:51) [12]

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


 
Jeer ©   (2005-08-25 18:10) [13]

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


 
Irinka ©   (2005-08-26 05:16) [14]

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


 
Irinka ©   (2005-08-29 05:48) [15]

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



Страницы: 1 вся ветка

Текущий архив: 2006.02.05;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
2-1137548533
Gena
2006-01-18 04:42
2006.02.05
Delphi7


10-1113213878
uli
2005-04-11 14:04
2006.02.05
Ошибка при проверке существования экземпляра ВОРД


15-1137401942
Rentgen
2006-01-16 11:59
2006.02.05
поле с прокруткой как в MoveMaker ???


2-1136627227
Goblin
2006-01-07 12:47
2006.02.05
Сссылка


15-1137352844
AlterEgo of WondeRu
2006-01-15 22:20
2006.02.05
Путин и Иисус!