Here's a little C# program I made that gets the filename of the currently set desktop wallpaper and also can be used to set the desktop wallpaper.

Example usage: SetDesktopWallpaper.exe C:\MyNewWallpaper.jpg

Just something I made for my sister who has Windows 7 Starter edition and lacks the presentation controls. Add it to your 'Send To' folder and just select the file you want to set the wallpaper as and go.

using System;
using System.Runtime.InteropServices;
 * A command line tool to set the desktop background wallpaper.
 * Takes a single argument that is the filename to the wallpaper to set.
 * Author:
 * Date: 2010-05-29
namespace SetDesktopBackground
    static class Program
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern int SystemParametersInfo(int uAction,
            int uParam, string lpvParam, int fuWinIni);
        private static readonly int MAX_PATH = 260;
        private static readonly int SPI_GETDESKWALLPAPER = 0x73;
        private static readonly int SPI_SETDESKWALLPAPER = 0x14;
        private static readonly int SPIF_UPDATEINIFILE = 0x01;
        private static readonly int SPIF_SENDWININICHANGE = 0x02;
        static string GetDesktopWallpaper()
            string wallpaper = new string('\0', MAX_PATH);
            SystemParametersInfo(SPI_GETDESKWALLPAPER, (int)wallpaper.Length, wallpaper, 0);
            return wallpaper.Substring(0, wallpaper.IndexOf('\0'));
        static void SetDesktopWallpaper(string filename)
            SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, filename,
        static void Main(string[] args)
            System.Console.WriteLine("Current desktop wallpaper is at path: " + GetDesktopWallpaper());
            catch (IndexOutOfRangeException ex)
                System.Console.WriteLine("Not enough parameters supplied. Please supply a filename.");