Вот пример в C # для получения обоев. Все, что вам нужно добавить, это дополнительный код для сохранения последних обоев и проверить, не отличаются ли они.
RegistryKey wallpaper = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop",false);
string wallpapername = wallpaper.GetValue("wallpaper").ToString();
wallpaper.Close();
Если вы пишете что-то на языке, отличном от .net, вы можете использовать функцию Win32 API RegNotifyChangeKeyValue
, чтобы проверить, изменилось ли это значение:
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper