用下面的函数改变桌面背景:
Const SPI_SETDESKWALLPAPER = 20
Const SPIF_UPDATEINIFILE = &H1
Const SPIF_SENDWININICHANGE = &H2
Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\deskTop.bmp", SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
用下面的函数读当前桌面背景:
Public Function getvalue(ByVal ip As Long, KeyName As String, valuename As String) As String     Dim retval As Long
     Dim hKey As Long
     Dim valuesetting As Variant
     Dim cddata As Long
     Dim lvalue As Long
     Dim svalue As String
     Dim lvaluetye As Long
     retval = RegOpenKeyEx(ip, KeyName, 0, KEY_ALL_ACCESS, hKey)
     
    If retval > 0 Then
      getvalue = ""
      Exit Function
    End If
    
    retval = RegQueryValueEx(hKey, valuename, 0, lvaluetype, ByVal vbNullString, cddata)
   If retval <> 0 Then
     RegCloseKey hKey
    Exit Function
   End If
  Select Case lvaluetype
        Case REG_SZ
              svalue = String(cddata, Chr(0))
              RegQueryValueEx hKey, valuename, 0, lvaluetype, ByVal svalue, cddata
              valuesetting = Left$(svalue, cddata)
             getvalue = CStr(valuesetting)
       Case REG_DWORD
             RegQueryValueEx hKey, valuename, 0, lvaluetype, lvalue, cddata
             valuesetting = lvalue
            getvalue = CStr(valuesetting)
    End Select
End Function
但是桌面背景用上面第一个函数改变后(桌面背景表面上已经改变) 用第二个函数显示当前桌面背景的却是没有改变的还是原来的我哪个函数不对????