在项目中新建一个类,将下面代码 Copy 到新类中,然后保存,OK。
Imports System.Runtime.InteropServices
Public Class WallPaper
Private Const SPI_SETDESKWALLPAPER As Integer = &H14
Private Const SPIF_UPDATEINFILE 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
Public Shared Function SetWallpaper(ByVal fileName As String, ByVal isAlways As Boolean) As Boolean
Try
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, fileName, isAlways)
Catch ex As Exception
Return False
End Try
End Function
End Class
其中,函数 SystemParametersInfo 的参数有四个,我们需要关心的是后两个,它们分别是要设为壁纸的文件名和下次开机时是否仍使用新壁纸。
那么,如何调用我们定义的方法呢?很简单,在窗体中添加一个按钮,然后,你可以设计成:当用户点击该按钮时,打开一个对话框,让用户选择壁纸图片,用户选择后,新壁纸便会生效。OK,打开对话框的代码,我这儿就不写了,来看如何调用上述类中的函数。
If WallPaper.SetWallpaper(fileName,True) Then
MessageBox.Show("设置成功!")
Else
MessageBox.Show("设置失败!")
End If