Mit folgender Procedure soll das Desktophintergrundbild entfernt werden und ein Farbe als Hintergrund festgelegt werden:
Delphi-Quellcode:
procedure TForm1.SetDesktopColor(clr:DWord);
var
colorID:Integer;
color:COLORREF;
begin
// Remember current background color
if FOldColor=CLR_INVALID then
FOldColor:=GetSysColor(COLOR_BACKGROUND);
// Set the desktop background color to the wanted one
colorID:=COLOR_BACKGROUND;
color:=clr;
SetSysColors(1,colorID,color);
// Remove the desktop wallpaper, without updating the registry
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar(''), 0);
end;
Unter WinXP funzt das einwandfrei, aber als ich es auf den Rechner meiner Eltern (Win2000) ausprobiert habe, hat er das Hintergrundbild nicht entfernt und überall, wo weiß ist setzt er die angegebene Farbe. Weiß jemand, woran das liegen könnte.