Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Windows Desktop. Wallpapers


Автор: Valafar 4.1.2010, 00:28
Всем доброго времени суток!

Я пока являюсь новичком в широком пространстве .NET, прошу совета и наставления smile
Понадобилось создать приложение, способное в среде Vista автоматически менять обои рабочего стола через определенный промежуток времени, либо в конкретные часы.
Файлы с обоями выбираются заранее, как и промежуток времени.

В данный момент пока не представляю сложности и затратности на данное приложение, поэтому, хотя бы для начала подскажите, пожалуйста, средства C#, позволяющие работать со свойствами рабочего стола Windows, если таковы предусмотрены.

Автор: Heinzz 4.1.2010, 10:05
Стандартный .net средств нет, пользуйте COM
Код

    class Program
    {
        
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern Int32 SystemParametersInfo(UInt32 uiAction, UInt32 uiParam, String pvParam, UInt32 fWinIni);
        private static UInt32 SPI_SETDESKWALLPAPER = 20;
        private static UInt32 SPIF_UPDATEINIFILE = 0x1;

        public void SetImage(string filename)
        {
            SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, filename, SPIF_UPDATEINIFILE);
        }

        static void Main(string[] args)
        {
            Program t = new Program();
            t.SetImage("E:\\TEMP\\1.jpg");
        }
    }


+using System.Runtime.InteropServices;

Автор: GavriKos 6.1.2010, 13:06
Вариант второй - если не ошибаюсь в реестре хранится путь к обоям ;-)

Автор: jonie 6.1.2010, 13:18
GavriKos, лучше через легальные функции - хрен его знает когда путь к реестру поменяется...

Автор: GavriKos 6.1.2010, 13:22
Там по моему с реестром еще одна проблемка. Даже если поменять путь, то надо обновить рабочий стол чтоб обои поменялись. Но не уверен как с этим в висте. Но вот по моему в шарпе все же нет функции для смены обоев.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)