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

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

Как изменить фоновую картинку на рабочем столе.


Страницы:   1 2

Yandexman ©   (2005-06-01 12:53:00) 

Тема была незаслуженно закрыта, поэтому извиняюсь за открытие новой.
вот код программы, совместил 3 и 8, но от этого картинка не менятся!
procedure SetWallpaper(sWallpaperBMPPath: string; bTile: boolean);
var
 reg: TRegistry;
begin
 reg := TRegistry.Create;
 with reg do
 begin
   RootKey:=HKEY_CURRENT_USER;
   OpenKey('Control Panel\Desktop',True);
   WriteString('Wallpaper',sWallpaperBMPPath);
 end;
 reg.Free;
SystemParametersInfo(spi_SetDeskWallpaper, 0, PChar(sWallpaperBMPPath) , spif_UpdateIniFile);
end;


rOOse   (2005-06-01 18:52:00) [21]


> [8] vaxluk   (01.06.05 18:48)

упс забыл;)


vaxluk   (2005-06-01 18:48:00) [22]

не забудь добавить
uses
ComObj,  ShlObj;


vaxluk   (2005-06-01 18:32:00) [23]

const

CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}';
var

ActiveDesktop: IActiveDesktop;
begin
ActiveDesktop := CreateComObject(CLSID_ActiveDesktop)
as IActiveDesktop;
ActiveDesktop.SetWallpaper('', 0); \\ путь к картинке
ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
end;


rOOse   (2005-06-01 16:39:00) [24]

Удалено модератором


rOOse   (2005-06-01 16:36:00) [25]

Удалено модератором


rOOse   (2005-06-01 16:34:00) [26]

Удалено модератором


rOOse   (2005-06-01 16:33:00) [27]

Удалено модератором


rOOse   (2005-06-01 16:28:00) [28]

procedure tform1.SetWallpaper(sWallpaperBMPPath:String;bTile:boolean);
var
   reg : TRegIniFile;
begin
 reg := TRegIniFile.Create('Control Panel\Desktop' );
 with reg do
   begin
     WriteString( '', 'Wallpaper', sWallpaperBMPPath );
     if( bTile )then
       begin
         WriteString('', 'TileWallpaper', '1' );
       end
         else
       begin
         WriteString('', 'TileWallpaper', '0' );
       end;
  end;
reg.Free;
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, il,SPIF_SENDWININICHANGE );
end;
вот работает


Eraser   (2005-06-01 15:07:00) [29]

Yandexman   (01.06.05 12:53)

Что возвращает ф-я SystemParametersInfo?


Страницы:   1 2

Наверх

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