'在XP中无法即时更换墙纸???????????Option Explicit'声明api
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 LongConst SPI_SETDESKWALLPAPER = 20
Const SPIF_SENDWININICHANGE = &H2
Const SPIF_UPDATEINIFILE = &H1Dim image_path As String'更换墙纸
Private Sub Form_Click()
    image_path = "C:\WINDOWS\0.bmp"
    SystemParametersInfo SPI_SETDESKWALLPAPER, 0,image_path,SPIF_SENDWININICHANGE
End Sub

解决方案 »

  1.   

    须要在显示属性窗口内的“在活动桌面上显示Web内容”复选框取消
      

  2.   

    Option Explicit'声明api
    '把ByRef lpvParam As Any改为Byval lpvParam As Any
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, Byval lpvParam As Any, ByVal fuWinIni As Long) As LongConst SPI_SETDESKWALLPAPER = 20
    Const SPIF_SENDWININICHANGE = &H2
    Const SPIF_UPDATEINIFILE = &H1Dim image_path As String'更换墙纸
    Private Sub Form_Click()
        image_path = "C:\WINDOWS\0.bmp"
        SystemParametersInfo SPI_SETDESKWALLPAPER, 0,image_path,SPIF_SENDWININICHANGE
    End Sub
      

  3.   

    '终于在网上找到方法了(上面那个我发错了)Option Explicit'声明api
    '把ByRef lpvParam As Any改为Byval lpvParam As Any
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, Byval lpvParam As Any, ByVal fuWinIni As Long) As LongConst SPI_SETDESKWALLPAPER = 20
    Const SPIF_SENDWININICHANGE = &H2
    Const SPIF_UPDATEINIFILE = &H1Dim image_path As String'更换墙纸
    Private Sub Form_Click()
        image_path = "C:\WINDOWS\0.bmp"
        'SPIF_SENDWININICHANGE改为SPIF_UPDATEINIFILE 
        SystemParametersInfo SPI_SETDESKWALLPAPER, 0,image_path,SPIF_UPDATEINIFILE 
    End Sub