我修改了注册表中的壁纸,但壁纸并不发生相应的改变,只有重启后才变为修改后的,如何才能时时的让壁纸发生变化?我修改过壁纸后F5刷新注册表也没有效果。

解决方案 »

  1.   


    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, pcahr('c:\wall.bmp'), SPIF_UPDATEINIFILE);
      

  2.   

    不明白楼上的继续    SOS!
      

  3.   

    procedure TForm1.SpeedButton2Click(Sender: TObject);
      var
       reg: tregistry;
       jpeg: tjpegimage;
       bmp: tbitmap;
      begin
       jpeg:=tjpegimage.Create;
       jpeg.LoadFromFile(openpicturedialog1.filename);
       bmp:=tbitmap.Create;
       bmp.assign(jpeg);
       bmp.savetofile('c:\windows\wall.bmp');
       reg:=tregistry.Create;
      reg.rootkey:=hkey_current_user;
      reg.openkey(`control panel\desktop`,false);
      reg.writestring(`tilewallpaper`,`0`);
       reg.writestring(`wallpaper`,`c:\windows\wall.bmp`);
      systemparametersinfo (spi_setdeskwallpaper,0,nil,spif_sendchange);加這句
      reg.closekey;
       reg.Free;
       close;
       end;