procedure TForm1.Button4Click(Sender: TObject);
var
i:Integer;
j, dir:string;
Reg:TRegistry;
ADeskTop:IActiveDesktop;
wallpaper:PwideChar;
begin
dir:='C:\WINDOWS\Web\Wallpaper\';
for i:=0 to ListBox2.Items.Count-1 do
if ListBox2.Selected[i] then
j:=dir + ExtractFileName(ListBox2.Items[i]);
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
if Reg.OpenKey('Control Panel\Desktop',True) then
Reg.WriteString('Wallpaper',j);
ADeskTop:=CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
GetMem(wallpaper,128);
ADeskTop.GetWallpaper(wallpaper,128,0);
ADeskTop.SetWallpaper(wallpaper,0);
ADeskTop.ApplyChanges(AD_APPLY_ALL);
SystemParametersinfo(SPI_SETDESKWALLPAPER,0,nil,3);
InvalidateRect(0, nil, true);
end;