Устанавливаем свой WallPaper для Windows средствами Delphi delphid.dax.ru WinSov.com В этой статье мы рассмотрим вопрос о том, как средствами Delphi можно поменять обои на рабочем столе. Информацию о картинке, которая находится на рабочем столе, конечно же, можно найти в реестре! Она находится в ключе HKEY_CURRENT_USER, а добраться до нее можно по такому пути: HKEY_CURRENT_USER\Control Panel\Desktop\ А параметр, содержащий название картинки, носит имя 'wallpaper'. То есть для того, чтобы сменить обои нам надо изменить значение параметра 'wallpaper' и оповестить систему о том, что мы внесли изменения в реестр. Итак, приступим, для работы нам понадобятся два дополнительных модуля: Registry.pas и WinProcs.pas, которые надо обязательно подключить в раздел uses Вашей программы. Нам потребуется всего одна кнопка, по нажатию на которую у нас будут меняться обои на Рабочем столе. Для наглядности привожу полный код приложения, которое получилось у меня: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Registry, WinProcs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure SetWallpaper(sWallpaperBMPPath : String; bTile : boolean ); var reg : TRegIniFile; begin // Изменяем ключи реестра // HKEY_CURRENT_USER // Control Panel\Desktop // TileWallpaper (REG_SZ) // Wallpaper (REG_SZ) 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, Nil, SPIF_SENDWININICHANGE ); end; procedure TForm1.Button1Click(Sender: TObject); begin SetWallpaper('c:\windows\1stboot.bmp', False ); end; end. Но надо помнить что этот код будет действовать только при отключенном ActiveDesctop. Если же он у Вас включен или Вы хотите установить на Рабочий Стол картинку в формате .JPG или .GIF, то Вам потребуется использовать код, приведенный ниже 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; Ну вот вроде бы и все, используйте на здоровье!..