Private Const SPI_SETDESKWALLPAPER = 20
Private Const SPIF_UPDATEINIFILE = &H1
Private Const SPIF_SENDWININICHANGE = &H2'获取和设置数量众多的windows系统参数
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _
                                                                   (ByVal uAction As Long, _
                                                                     ByVal uParam As Long, _
                                                                     ByRef lpvParam As Any, _
                                                                     ByVal fuWinIni As Long) As Long
Private Sub Form_Load()
    Dim lngYSOrNO As Long   '记录反回值,0失败,非0即成功
    Dim strApp As String    '存储图片地址,如:C:\MM.bmp
    lngYSOrNO = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:\MM.bmp", SPIF_UPDATEINIFILE + SPIF_SENDCHANGED)
    If lngYSOrNO = 0 Then
        Unload Me           '如失败卸载窗体
    End If
End Sub'最后一个更新的参数我试过单个的放进去还是失败

解决方案 »

  1.   

    '添加 Command1 Picture1 加载一张桌面大小的图片Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
    Dim WallPaper$
    Const SPI_SETDESKWALLPAPER = 20
    Const SPIF_UPDATEINIFILE = &H1
    Private Sub Form_Load()
       Picture1.AutoSize = True
       Picture1.BorderStyle = 0
    End SubPrivate Sub Command1_Click()
       WallPaper = Environ("windir") & "\Web\Wallpaper\test.bmp"
       SavePicture Picture1.Picture, WallPaper
       Call SystemParametersInfo(ByVal SPI_SETDESKWALLPAPER, True, ByVal WallPaper, SPIF_UPDATEINIFILE)
    End Sub