using System.Runtime.InteropServices;
using System.Drawing;
using Microsoft.Win32;
public class 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 void SetWallpaper(string path, Style style)
{
RegistryKey key = Registry.CurrentUser.OpenSubKey(
"Control Panel\\Desktop", true);
switch( style )
{
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;
}
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, path,
SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
}
}
نحوه ی استفاده :
private void setButton_Click(object sender, EventArgs e)
{
Wallpaper w = new Wallpaper();
w.SetWallpaper(fileName,
(Wallpaper.Style)Enum.Parse(typeof(Wallpaper.Style ), "Tiled"));
}
منبع : http://blogs.msdn.com/coding4fun/arc...31/912569.aspx
چند نمونه برنامه ی آماده :
http://www.codeproject.com/KB/cs/wallpaperchanger.aspx
http://www.codeproject.com/KB/applic...allpaperq.aspx