Сейчас я напишу простой способ замены обоев рабочего стола программным способом.. Создаём форму Form.cs - Меняем название какое нравится... например WallpaperFrm.cs На форму кинем компонент PictureBox - Меняем ему название на CWShow В свойствах формы обязательно выставьте поведение AllowDrop на true В форме перейдём во вкладку "События" Выберем DragDrop и DragEnter Теперь запишем данный код для работы замены. Создадим класс NativeMethods.cs C# using System; using System.Runtime.InteropServices; namespace Change_wallpaper { internal static class NativeMethods { [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern int SystemParametersInfo(int uAction, int uParam, IntPtr lpvParam, int fuWinIni); } } Подробнее про SystemParametersInfo можете почитать тут - http://rusproject.narod.ru/winapi/s/systemparametersinfo.html Переходим в код формы, и запишем в него данный код: C# using System.Drawing; using System.IO; using System.Runtime.InteropServices; using System.Windows.Forms; /* Author r3xq1 */ namespace Change_wallpaper { public partial class WallpaperFrm : Form { public const int SPI_SETDESKWALLPAPER = 20, SPIF_UPDATEINIFILE = 1, SPIF_SENDWININICHANGE = 2; public WallpaperFrm() { InitializeComponent(); this.AllowDrop = true; DragEnter += new DragEventHandler(CWShow_DragEnter); DragDrop += new DragEventHandler(CWShow_DragDrop); } private void CWShow_Click(object sender, System.EventArgs e) { this.CWShow.Image = Properties.Resources.drag_and_drop_icon; } private void CWShow_DragDrop(object sender, DragEventArgs e) { foreach (string text in (string[])e.Data.GetData(DataFormats.FileDrop)) { Path.GetFileNameWithoutExtension(text); this.CWShow.Image = Image.FromFile(text); NativeMethods.SystemParametersInfo(20, 1, Marshal.StringToBSTR(text), 3); } } private void CWShow_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop, false)) { bool allowFilesDrop = true; foreach (string test in (string[])e.Data.GetData(DataFormats.FileDrop, true)) { allowFilesDrop = !(new FileInfo(test).Extension != ".jpg" && new FileInfo(test).Extension != ".png"); } if (allowFilesDrop) e.Effect = DragDropEffects.Move; this.CWShow.SizeMode = PictureBoxSizeMode.StretchImage; } } } }