Einzelnen Beitrag anzeigen

CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#1

Bildschirmhintergrund auf separaten Desktops

  Alt 25. Nov 2013, 17:43
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?
  Mit Zitat antworten Zitat