Setting+the+Desktop+wallpaper

//by Jon Ripley, July 2007//

Setting the Desktop wallpaper
To set the current Desktop wallpaper use the following code:

code format="bb4w" SPIF_UPDATEINIFILE = 1 SPI_SETDESKWALLPAPER = 20 SYS "SystemParametersInfo", SPI_SETDESKWALLPAPER, 0, filename$, SPIF_UPDATEINIFILE code

Here the **filename$** parameter is the full path to a bitmap image (.BMP) to set as the Desktop wallpaper. To use images in unsupported file formats - such as .GIF and .PNG - as Desktop wallpaper they must first be converted to Window bitmap (.BMP) format. Under Windows Vista **filename$** can point to a JPEG image (.JPG or .JPEG).

Removing the Desktop wallpaper
To remove the current Desktop wallpaper use code similar to the following:

code format="bb4w" SPIF_UPDATEINIFILE = 1 SPI_SETDESKWALLPAPER = 20 SYS "SystemParametersInfo", SPI_SETDESKWALLPAPER, 0, "", SPIF_UPDATEINIFILE code

Here the only difference is that the file name parameter is empty.

Retrieving the current Desktop wallpaper
To retrieve the full path to the current Desktop wallpaper use code similar to the following:

code format="bb4w" MAX_PATH = 260 DIM wp% MAX_PATH - 1 SPI_GETDESKWALLPAPER = 115 SYS "SystemParametersInfo", SPI_GETDESKWALLPAPER, MAX_PATH, wp%, 0 BackDrop$ = $$wp% code

Here **BackDrop$** will contain the full path to the current Desktop wallpaper or NUL if no wallpaper is in use. As always, make sure you execute the **DIM** statement only once, or use **DIM LOCAL**, to avoid a memory leak and an eventual **No room** error.