试试这个Public Enum EnumRegistryValue REG_SZ = 1 '字符串 REG_DWORD = 4 '双字节 REG_BINARY = 3 '二进制 End EnumPublic Enum EnumRegistryKey HKEY_CLASSES_ROOT = &H80000000 HKEY_CURRENT_USER = &H80000001 HKEY_LOCAL_MACHINE = &H80000002 HKEY_USERS = &H80000003 End Enum Function SetValue(RootKey As EnumRegistryKey, SubKey As String, Name As String, fbType As EnumRegistryValue, Value As Variant) As Long '设置值 On Error GoTo er Dim i As Integer, tmp As String, l As Integer l = RegOpenKeyEx(RootKey, SubKey, 0, &H3F, R) If l <> 0 Then GoTo er Select Case fbType Case REG_DWORD SetValue = RegSetValueEx(R, Name, 0&, 4, CLng(Value), 4) Case REG_SZ l = 0 For i = 1 To Len(Value) If Asc(Mid(Value, i, 1)) < 0 Then l = l + 2 Else l = l + 1 End If Next i SetValue = RegSetValueEx(R, Name, 0&, 1, ByVal CStr(Value), l) Case REG_BINARY SetValue = RegSetValueEx(R, Name, 0&, 3, ByVal CStr(Value), Len(CStr(Value))) Case Else SetValue = -1 End Select RegCloseKey R Exit Function er: SetValue = -1 RegCloseKey R End Function
1.你API的声明贴出来看看 2.我怎么记得好象应该 REG_SZ = 2
你加上Value=Value & chr(0)
把源代码贴出来 Private Sub Form_Load() Dim retvalue As Long Dim result As Long Dim keyValue As String Dim keyvaluei As String Dim keyld As Long Dim subkey As String Dim bufsize As Long Dim reg_sz As Long Dim buf As String retvalue = RegOpenKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings", keyld) If retvalue = 0 Then keyValue = "202.112.192.1:80" Form1.Caption = keyld keyvaluei = "HH:mm:ss tt" subkey = "ProxyServer" retvalue = RegQueryValueEx(keyld, subkey, 0, reg_sz, 0, bufsize) Text1.Text = retvalue 'retvalue = RegSetValue(keyld, subkey, reg_sz, keyValue, Len(keyValue) + 1) retvalue = RegSetValueEx(keyld, subkey, 0, reg_sz, keyValue, Len(keyValue) + 1) Text2.Text = retvalue Else Form1.Caption = "hehe" End If End Sub
而且keyValue改成String * xx类型的比较好,不然,用二进制数组代替也行,代替的时候不用太麻烦: dim a() as byte a=字符串 RegSetValueEx(x,x,x,a,x) 就行了
Public Property Let Str(ByVal hKey As Long, ByRef ValueName As String, Optional ByRef RegType As Long = REG_SZ, RHS As String) Call RegSetValueEx(hKey, ByVal ValueName, 0, RegType, ByVal RHS, LenB(StrConv(RHS, vbFromUnicode)) + 1) End Property
REG_SZ = 1 '字符串
REG_DWORD = 4 '双字节
REG_BINARY = 3 '二进制
End EnumPublic Enum EnumRegistryKey
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
End Enum
Function SetValue(RootKey As EnumRegistryKey, SubKey As String, Name As String, fbType As EnumRegistryValue, Value As Variant) As Long
'设置值
On Error GoTo er
Dim i As Integer, tmp As String, l As Integer
l = RegOpenKeyEx(RootKey, SubKey, 0, &H3F, R)
If l <> 0 Then GoTo er
Select Case fbType
Case REG_DWORD
SetValue = RegSetValueEx(R, Name, 0&, 4, CLng(Value), 4)
Case REG_SZ
l = 0
For i = 1 To Len(Value)
If Asc(Mid(Value, i, 1)) < 0 Then
l = l + 2
Else
l = l + 1
End If
Next i
SetValue = RegSetValueEx(R, Name, 0&, 1, ByVal CStr(Value), l)
Case REG_BINARY
SetValue = RegSetValueEx(R, Name, 0&, 3, ByVal CStr(Value), Len(CStr(Value)))
Case Else
SetValue = -1
End Select
RegCloseKey R
Exit Function
er:
SetValue = -1
RegCloseKey R
End Function
2.我怎么记得好象应该
REG_SZ = 2
Private Sub Form_Load()
Dim retvalue As Long
Dim result As Long
Dim keyValue As String
Dim keyvaluei As String
Dim keyld As Long
Dim subkey As String
Dim bufsize As Long
Dim reg_sz As Long
Dim buf As String
retvalue = RegOpenKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings", keyld)
If retvalue = 0 Then
keyValue = "202.112.192.1:80"
Form1.Caption = keyld
keyvaluei = "HH:mm:ss tt"
subkey = "ProxyServer"
retvalue = RegQueryValueEx(keyld, subkey, 0, reg_sz, 0, bufsize)
Text1.Text = retvalue
'retvalue = RegSetValue(keyld, subkey, reg_sz, keyValue, Len(keyValue) + 1)
retvalue = RegSetValueEx(keyld, subkey, 0, reg_sz, keyValue, Len(keyValue) + 1)
Text2.Text = retvalue
Else
Form1.Caption = "hehe"
End If
End Sub
dim a() as byte
a=字符串
RegSetValueEx(x,x,x,a,x)
就行了
Call RegSetValueEx(hKey, ByVal ValueName, 0, RegType, ByVal RHS, LenB(StrConv(RHS, vbFromUnicode)) + 1)
End Property
http://www.sqreg.com/list.asp?id=243
http://www.sqreg.com/list.asp?id=244
http://www.sqreg.com/list.asp?id=245
http://www.sqreg.com/list.asp?id=246
http://www.sqreg.com/list.asp?id=247
http://www.sqreg.com/list.asp?id=248
http://www.sqreg.com/list.asp?id=249
http://www.sqreg.com/list.asp?id=250
http://www.sqreg.com/list.asp?id=251