I like to change everyday my desktop wallpaper, so i've made a little soft which change it by downloading some pictures on internet.
Here my C# class to apply my wallpaper ( bmp file ) :
using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Windows.Forms; using System.Drawing; using System.IO; using Microsoft.Win32; namespace WallPaperChanger { public class WinAPI { [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int SystemParametersInfo (int uAction, int uParam, string lpvParam, int fuWinIni); public const int SPI_SETDESKWALLPAPER = 20; public const int SPIF_SENDCHANGE = 0x2; } [Serializable] public class WallPaperEntry { public enum Style : int { Tiled, Centered, Stretched } public static Style ImageStyle = Style.Stretched; [DllImport("user32.dll", CharSet = CharSet.Auto)] static extern int SystemParametersInfo( int uAction, int uParam, string lpvParam, int fuWinIni); const int SPI_SETDESKWALLPAPER = 20; const int SPIF_UPDATEINIFILE = 0x1; const int SPIF_SENDWININICHANGE = 0x2; public static void ApplyWallpaper(String bPath) { RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true); switch( ImageStyle ) { case Style.Stretched : key.SetValue(@"WallpaperStyle", "2") ; key.SetValue(@"TileWallpaper", "0") ; break; case Style.Centered : key.SetValue(@"WallpaperStyle", "1") ; key.SetValue(@"TileWallpaper", "0") ; break; case Style.Tiled : key.SetValue(@"WallpaperStyle", "1") ; key.SetValue(@"TileWallpaper", "1") ; break; } key.Close(); WinAPI.SystemParametersInfo(WinAPI.SPI_SETDESKWALLPAPER, 1, bPath, WinAPI.SPIF_SENDCHANGE); } } }
WallPaperEntry.ImageStyle = Style.Stretched; WallPaperEntry.ApplyWallpaper("C:/mywallpaper.bmp");
That's all :)