Über dem Windows-Desktop liegt eine ListView-Komponente. Du benötigst also einfach ein
Handle auf diese ListView:
Delphi-Quellcode:
function GetDesktopListViewHandle: THandle;
var S: String;
begin
Result := FindWindow('ProgMan', nil);
Result := GetWindow(Result, GW_CHILD);
Result := GetWindow(Result, GW_CHILD);
SetLength(S, 40);
GetClassName(Result, PChar(S), 39);
if PChar(S)<>'SysListView32' then Result := 0;
end;
so kriegst du das
handle, auf dem der Desktop gezeichnet wird.
Welche nachricht verwendet wird, um das hintergrundbild zu zeichnen, weiß ich nicht.
Wenn du aber das hintergrundbild änern willst, dürfte folgendes gehen:
Delphi-Quellcode:
procedure SetWallpaper(sWallpaperBMPPath: String; bTile : boolean);
begin
if not SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,
Pointer(sWallpaperBMPPath), SPIF_SENDWININICHANGE) then
ShowMessage('Konnte Datei '+sWallpaperBMPPath+#13+' nicht als Desktop-Hintergrund setzen!');
end;
Ich hoffe, Es is was dabei, das dir weiterhilft!