Here is an example in C# to retrieve the wallpaper. All you would need to add is some additional code to store the last wallpaper and check to see if it is different.
RegistryKey wallpaper = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop",false);
string wallpapername = wallpaper.GetValue("wallpaper").ToString();
wallpaper.Close();
If you were writing something in a non .net language you could use the Win32API RegNotifyChangeKeyValue to check to see if this value has changed
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper