Article Options
Premium Sponsor
Premium Sponsor

 »  Home  »  .NET Framework  »  VS2005 - Setting Windows Desktop Wallpaper
 »  Home  »  Visual Studio 2005  »  VS2005 - Setting Windows Desktop Wallpaper
 »  Home  »  Windows Development  »  VS2005 - Setting Windows Desktop Wallpaper
VS2005 - Setting Windows Desktop Wallpaper
by Guest Author | Published  06/15/2004 | .NET Framework Visual Studio 2005 Windows Development | Rating:
Guest Author
This author account is for guest publications only, and does not reflect the bio for any particular author. 

View all articles by Guest Author...
VS2005 - Setting Windows Desktop Wallpaper

Guest Author: Jay Roxe

Here is some Visual Basic 2005 code for setting the Windows desktop wallpaper to an arbitrary image on the user's local drive. It illustrates use of VB2005 My classes, in this case to find the location of the user's My Pictures directory without a lot of coding.

To use, paste the following code into the top of your class module. This code requires Visual Basic 2005 to work.

Private Const SPI_SETDESKWALLPAPER As Integer = &H14 Private Const SPIF_UPDATEINIFILE As Integer = &H1 Private Const SPIF_SENDWININICHANGE As Integer = &H2 Private Declare Auto Function SystemParametersInfo Lib "user32.dll" ( _ ByVal uAction As Integer, ByVal uParam As Integer, _ ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer ' change this to whatever filename you want to use Const WallpaperFile As String = "MovieCollectionImage.bmp" ''' <SUMMARY> ''' Sets the background of your Windows desktop. ''' The image will be saved in MyPictures and the background ''' wallpaper updated. ''' </SUMMARY> ''' The image to be set as the background. ''' <REMARKS></REMARKS> Friend Sub SetWallpaper(ByVal img As Image) Dim imageLocation As String imageLocation = My.Computer.FileSystem.CombinePath( _ My.Computer.FileSystem.SpecialDirectories.MyPictures, WallpaperFile) Try img.Save(imageLocation, System.Drawing.Imaging.ImageFormat.Bmp) SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, imageLocation, _ SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE) Catch Ex As Exception MsgBox("There was an error setting the wallpaper: " & Ex.Message) End Try End Sub

Now, use the following code to set the wallpaper to the desired image. This example shows how to set the wallpaper to an image contained in a Windows Forms picture box:

    SetWallpaper (Me.PictureBox1.Image)

And here's the code in C# as well (requires Visual C# 2005 to work):

private const int SPI_SETDESKWALLPAPER = 0X14; private const int SPIF_UPDATEINIFILE = 0X1; private const int SPIF_SENDWININICHANGE = 0X2; [DllImport("USER32.DLL",EntryPoint="SystemParametersInfo", SetLastError = true)] private static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni); // change this to whatever filename you want to use private const string WallpaperFile = "MovieCollectionImage.bmp"; // <SUMMARY> // Sets the background of your Windows desktop. // The image will be saved in MyPictures and the background // wallpaper updated. // </SUMMARY> // The image to be set as the background. // <REMARKS></REMARKS> internal void SetWallpaper(Image img) { string imageLocation; imageLocation = System.IO.Path.GetFullPath(System.Environment.SpecialFolder.MyPictures.ToString() + WallpaperFile); try { img.Save(imageLocation, System.Drawing.Imaging.ImageFormat.Bmp); SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, imageLocation, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE); } catch (Exception Ex) { MessageBox.Show("There was an error setting the wallpaper: " + Ex.Message); } }
How would you rate the quality of this article?
1 2 3 4 5
Poor Excellent
Tell us why you rated this way (optional):

Article Rating
The average rating is: No-one else has rated this article yet.

Article rating:3.84126984126984 out of 5
 63 people have rated this page
Article Score51895
Sponsored Links