Exemple #1
0
        public static void Set(Uri uri, Style style)
        {
            Stream s = new System.Net.WebClient().OpenRead(uri.ToString());

            System.Drawing.Image img = System.Drawing.Image.FromStream(s);
            string tempPath          = Path.Combine(Path.GetTempPath(), "wallpaper.bmp");

            img.Save(tempPath, System.Drawing.Imaging.ImageFormat.Bmp);

            RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop", true);

            if (style == Style.Fill)
            {
                key.SetValue(@"WallpaperStyle", 10.ToString());
                key.SetValue(@"TileWallpaper", 0.ToString());
            }
            if (style == Style.Fit)
            {
                key.SetValue(@"WallpaperStyle", 6.ToString());
                key.SetValue(@"TileWallpaper", 0.ToString());
            }
            if (style == Style.Span) // Windows 8 or newer only!
            {
                key.SetValue(@"WallpaperStyle", 22.ToString());
                key.SetValue(@"TileWallpaper", 0.ToString());
            }
            if (style == Style.Stretch)
            {
                key.SetValue(@"WallpaperStyle", 2.ToString());
                key.SetValue(@"TileWallpaper", 0.ToString());
            }
            if (style == Style.Tile)
            {
                key.SetValue(@"WallpaperStyle", 0.ToString());
                key.SetValue(@"TileWallpaper", 1.ToString());
            }
            if (style == Style.Center)
            {
                key.SetValue(@"WallpaperStyle", 0.ToString());
                key.SetValue(@"TileWallpaper", 0.ToString());
            }

            SystemParametersInfo(SPI_SETDESKWALLPAPER,
                                 0,
                                 tempPath,
                                 SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);

            s.Close();
            img.Dispose();
        }
        internal static Image GetWallpaperImage(string weather, bool thumbnail = false, bool preview = false)
        {
            string path = GetWallpaper(weather, thumbnail);
            Stream s = new System.Net.WebClient().OpenRead(path);
            Image img = Image.FromStream(s);
            s.Close();

            // Modify for multiscreen
            if (!preview && !thumbnail && weather != "Static")
                img = Multiscreen.ModifyImage(img);

            return img;
        }