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)
评论