下面是一个写注册表的函授,要自己加上注册表API的声明. 看看可不可以. Public lmainKey As Long Public Enum w32ValueType w32BINARY = REG_BINARY w32DWORD = REG_DWORD w32REGSz = REG_SZ End Enum Sub mmm() Dim strSubKeyName As String Dim strValueName As String Dim bBuff(3) As Byte Dim iDataType As Integer strSubKeyName = "Control Panel\desktop" strValueName = "UserPreferences1" bBuff(0) = &H20 bBuff(1) = &H21 bBuff(2) = &H22 bBuff(3) = &H24 lmainKey = HKEY_CURRENT_USER iDataType = w32BINARY If SetValue(strSubKeyName, strValueName, iDataType, bBuff) = True Then MsgBox "Successed Set Value" Else MsgBox "failed to Set Value" End If End Sub Public Function SetValue(ByVal sTemp As String, ByVal sTemp1 As String, _ ByVal sTemp2 As Integer, sTemp3 As Variant) As Boolean Dim Handle As Long, lngValue As Long Dim strvalue As String Dim binValue() As Byte, length As Long, lresult As Long SetValue = False ' Open the key, exit if not found. If RegOpenKeyEx(lmainKey, sTemp, 0, KEY_WRITE, Handle) Then Exit Function End If Select Case sTemp2 Case REG_DWORD lngValue = sTemp3 lresult = RegSetValueEx(Handle, sTemp1, 0, sTemp2, lngValue, 4) Case REG_SZ strvalue = sTemp3 lresult = RegSetValueEx(Handle, sTemp1, 0, sTemp2, ByVal strvalue, Len(strvalue)) Case REG_BINARY binValue = sTemp3 length = UBound(binValue) - LBound(binValue) + 1 lresult = RegSetValueEx(Handle, sTemp1, 0, sTemp2, binValue(LBound(binValue)), length) End Select If lresult = 0 Then SetValue = True End If ' Close the key. RegCloseKey Handle End Function |