vb 请高手帮忙关于设置桌面背景,急急急。。。在线等。。。
用下面的函数改变桌面背景: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
但是桌面背景用上面第一个函数改变后(桌面背景表面上已经改变) 用第二个函数显示当前桌面背景的却是没有改变的还是原来的。。。我哪个函数不对???? --------------------编程问答-------------------- 我顶》》》 --------------------编程问答-------------------- 没问题呀
你是看的HKEY_CURRENT_USER\Control Panel\Desktop?
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/ --------------------编程问答-------------------- 是不是c:\deskTop.bmp不存在 --------------------编程问答-------------------- 存在 当然存在 因为桌面背景已经改变了 只是用第二个函数查看的时候,读出的是原来的桌面背景路径 --------------------编程问答-------------------- 第二个函数调用的是getvalue(HKEY_CURRENT_USER, "Control Panel\Desktop", "ConvertedWallpaper") --------------------编程问答-------------------- 你那是活动桌面,SystemParametersInfo是设普通的桌面WallPaper --------------------编程问答-------------------- 我已经解决了 虽然你的答案没什么用 还是把100分给你呀 呵呵 --------------------编程问答--------------------
补充:VB , API