另外。桌面支持那些格式的图片,有无大小限制,可不可以放到EXE中去。如何放又如何调用。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if opendialog1.Execute then
      SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, pChar(opendialog1.FileName), SPIF_UPDATEINIFILE);
    end;文件只能是 .bmp 格式的文件
      

  2.   

    SystemParametersInfo换的墙纸在重启后会自动变回去,要辅与注册表修改:
    更改桌面墙纸
      通过修改注册表,可以动态改变桌面墙纸及其显示方式(平铺还是居中): 
      Reg.OpenKey('Control Panel\Desktop',False); 
      Reg.WriteString('Wallpaper','C:\Windows\Bubbles.Bmp');{C:\Windows\Bubbles.Bmp为指定位图} 
      Reg.WriteString('TileWallpaper','1');
      Reg.CloseKey;
      SystemParametersInfo(SPI_SETDESKWALLPAPER,0,nil,SPIF_SENDWININICHANGE) {更新用户配置文件并刷新桌面} 如果开了ActiveDesktop的话,IE支持的图片就都支持了,JPG,GIF什么的……但是就不能用以上方法改墙纸了
      

  3.   

    要放在EXE中的话,要把BMP以资源的形式封装在EXE中,然后在运行时读取出来,并保存成文件即可