下面是我的程序,我在程序中设置后墙纸不会立即改变,重启系统后才会看到效果。怎样才能设置后就看到效果呢?
//设置桌面壁纸
procedure TFMain.SetWallPaper(Sender:TObject);
var
   Reg:TRegistry; 
   Item:TListItem;
begin
   Item:=ListView.Selected;
   if Item=nil then
   begin
      ShowMessage('请选择要设置成桌面背景的图片!');
      Exit;
   end;
   Reg:=TRegistry.Create;   
   Reg.RootKey:=HKey_Current_User;   
   Reg.OpenKey('Control Panel\Desktop',false);  
   //居中
   if Sender=MICenter then
   begin
      Reg.WriteString('TileWallpaper','0');
      Reg.WriteString('WallpaperStyle','0');
   end
   //平铺
   else if Sender=MITile then
   begin
      Reg.WriteString('TileWallpaper','1');
      Reg.WriteString('WallpaperStyle','0');
   end
   //拉伸
   else if Sender=MIFull then
   begin
      Reg.WriteString('TileWallpaper','0');
      Reg.WriteString('WallpaperStyle','2');
   end;
   //改变图片
   Reg.WriteString('Wallpaper',Item.SubItems[2]+Item.Caption);
   Reg.CloseKey;  
   Reg.Free;
   inherited;
 
   SystemParametersInfo(SPI_SETDESKWALLPAPER,0,nil,SPIF_SENDCHANGE);
end;