Danke, nur geht der Code nicht unter Win 9x, da dort kein Active Desktop unterstützt wird.
Hier der komplette Code, der geht nun unter XP auch nicht mehr, obwohl ich nichts verändert habe.
Delphi-Quellcode:
procedure TForm1.ChangeWallpaper(sWallPaperBMPPath: string; bTile: Boolean);
var
reg: TRegIniFile;
begin
reg := TRegIniFile.Create('Control Panel\Desktop');
try
with reg do
begin
WriteString('', 'Wallpaper', sWallPaperBMPPath);
WriteString('', 'TileWallpaper', IntToStr(Ord(bTile)));
end;
finally
FreeAndNil(reg);
end;
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
//Desktop aktualisieren
InvalidateRect(0,nil,true);
end;
Nachtrag: Der Code lässt das Hintergrundbild verschwinden und macht ihn einfarbig, komisch.
Nachtrag 2: Ok, das lag an einer anderen Stelle im Programm, also das geht unter XP doch.
Das Problem mit der Aktualisierung unter Win 2000 besteht jedoch weiterhin