// Edit:
Es funktiomiert nicht. Jeden falls unter Win XP.
Code:
[color=#000080][b]procedure[/b][/color] TForm1.WMSettingChange([color=#000080][b]var[/b][/color] Msg : TMessage);
[color=#000080][b]begin[/b][/color]
[color=#ff0000] if Msg.WParam = SPI_SETDESKWALLPAPER then[/color][color=#008000] // Breakpoint[/color]
GetActiveDesktopWallpaper;
[color=#000080][b]end[/b];[/color]
Hier kommt unter XP SP2/SP3 als
Msg.WParam der Wert
Null.
Mit Vista SP2 und Windows 7 ist dieser Wert wie erwartet gleich
SPI_SETDESKWALLPAPER also 20.