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>
''' <param name="img">The image to be set as the background.</param>
''' <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)
If you have a hot tip and we publish it, we'll pay you. However, due to accounting overhead we no longer pay $10 for a single tip submission. You must accumulate 10 acceptable tips to receive payment. Be sure to include a clear explanation of what the technique does and why it's useful. If it includes code, limit it to 20 lines if possible.
Submit your tip here.