Как обнаружить, что обои были изменены

Мне нужен какой-то способ (дайте, пожалуйста, чёткий кусок кода), чтобы обнаружить, были ли изменены обои рабочего стола без прав администратора у программы. Т.е. я установил обои, включил программу, и если кто-то сменил обои -- вылезает, например, msgbox

Язык подойдёт, наверное, любой, который на windows, от C# до VBs.

upd: нашёл ответ вот здесь: http://www.cyberforum.ru/csharp-net/thread1349036.html

using Microsoft.Win32;

class MyClass
{
    static string Wallpaper = "";
    static void Main()
    {           
        Wallpaper = CurrentWallpaper();           
        SystemEvents.UserPreferenceChanged += new UserPreferenceChangedEventHandler(UserPreferenceChanged);
        System.Threading.Thread.Sleep( System.Threading.Timeout.Infinite);
    }
    static string CurrentWallpaper()
    {
        using (RegistryKey wallpaper = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", false))
            return wallpaper.GetValue("wallpaper").ToString();           
    }
    static void UserPreferenceChanged(object sender, UserPreferenceChangedEventArgs e)
    {
        if(e.Category == UserPreferenceCategory.General)
            if (Wallpaper != CurrentWallpaper())
                Console.WriteLine("Wallpaper changed");
    }        
}

Ответы (0 шт):