mirror of
https://github.com/terrymacdonald/DisplayMagician.git
synced 2024-08-30 18:32:20 +00:00
63 lines
1.9 KiB
C#
63 lines
1.9 KiB
C#
|
using Microsoft.Win32;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.IO;
|
|||
|
using System.Linq;
|
|||
|
using System.Runtime.InteropServices;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace DisplayMagicianShared
|
|||
|
{
|
|||
|
public sealed class Wallpaper
|
|||
|
{
|
|||
|
Wallpaper() { }
|
|||
|
|
|||
|
const int SPI_SETDESKWALLPAPER = 20;
|
|||
|
const int SPIF_UPDATEINIFILE = 0x01;
|
|||
|
const int SPIF_SENDWININICHANGE = 0x02;
|
|||
|
|
|||
|
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|||
|
static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni);
|
|||
|
|
|||
|
public enum Style : int
|
|||
|
{
|
|||
|
Tiled,
|
|||
|
Centered,
|
|||
|
Stretched
|
|||
|
}
|
|||
|
|
|||
|
public static void SetAndSave(Uri uri, Style style, string filename)
|
|||
|
{
|
|||
|
System.IO.Stream s = new System.Net.WebClient().OpenRead(uri.ToString());
|
|||
|
|
|||
|
System.Drawing.Image img = System.Drawing.Image.FromStream(s);
|
|||
|
img.Save(filename, System.Drawing.Imaging.ImageFormat.Bmp);
|
|||
|
|
|||
|
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop", true);
|
|||
|
if (style == Style.Stretched)
|
|||
|
{
|
|||
|
key.SetValue(@"WallpaperStyle", 2.ToString());
|
|||
|
key.SetValue(@"TileWallpaper", 0.ToString());
|
|||
|
}
|
|||
|
|
|||
|
if (style == Style.Centered)
|
|||
|
{
|
|||
|
key.SetValue(@"WallpaperStyle", 1.ToString());
|
|||
|
key.SetValue(@"TileWallpaper", 0.ToString());
|
|||
|
}
|
|||
|
|
|||
|
if (style == Style.Tiled)
|
|||
|
{
|
|||
|
key.SetValue(@"WallpaperStyle", 1.ToString());
|
|||
|
key.SetValue(@"TileWallpaper", 1.ToString());
|
|||
|
}
|
|||
|
|
|||
|
SystemParametersInfo(SPI_SETDESKWALLPAPER,
|
|||
|
0,
|
|||
|
filename,
|
|||
|
SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|