Bis Windows 7 verwende ich folgenden Einzeiler, um das Hintergrundbild
nach einem erfolgreichen CreateDesktop/SetThreadDesktop/SwitchDesktop zu ändern:
Delphi-Quellcode:
function SetDesktopWallpaper(AFilename: string): boolean;
begin
Result := SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, Pointer(PWideChar(WideString(AFilename))), SPIF_SENDCHANGE);
end;
Ab Windows 8 ist das Hintergrundbild des alternativen Desktops leider schlicht blau, stattdessen wird das Hintergrundbild des nicht mehr angezeigten Desktops geändert.
Und auch -1 zum Zurücksetzen scheint nicht mehr zu klappen, der temporäre Schirm bleibt bestehen:
Delphi-Quellcode:
function RevertDesktopWallpaper: boolean;
begin
Result := SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, PWideChar(-1), SPIF_SENDCHANGE);
end;
Darus resultierend nun meine Frage: welche Alternativen Möglichkeiten, das Bildschirmhintergrundbild (temporär) zu verändern (bzw. das eines neues Desktops erstmalig zu setzen) gibt es noch?