原谅我,我是超级菜鸟,所以写了个这么菜鸟的注册表模板。
当然,到处是注册表的强大模板下载,不过我看着头晕。
我想实现这个效果,调用的时候,第一个参数是注册表键名,第二个参数是键值。
就像这样:MyReg.WriteReg "HKEY_CURRENT_USER\SOFTWARE\flying\Nam", "ranassa"
但是,当我lResult = RegCreateKey(strMajorName, strMinorName, lKeyHand)的时候,总说类型不对不对,我clng(strMajorName)了还是不对。还是只能改成 lResult = RegCreateKey(HKEY_CURRENT_USER, strMinorName, lKeyHand)
下面是源代码
Sub RegWrite(FullKeyName As String, KeyValue As String)
Dim lKeyHand As Long, lResult As Long, lKeyValue As Long, lDataType As Long
Dim strMajorName As String, strMinorName As String, strKeyName As String
strMajorName = Left(FullKeyName, InStr(FullKeyName, "\") - 1)
strKeyName = Mid(FullKeyName, InStrRev(FullKeyName, "\") + 1)
strMinorName = Mid(FullKeyName, InStr(FullKeyName, "\") + 1, Len(FullKeyName) - Len(strMajorName) - Len(strKeyName) - 2) lResult = RegCreateKey(HKEY_CURRENT_USER, strMinorName, lKeyHand)
lResult = RegOpenKeyEx(HKEY_CURRENT_USER, strMinorName, 0&, KEY_ALL_ACCESS, lKeyHand)
lResult = RegSetValueEx(lKeyHand, strKeyName, 0&, REG_SZ, ByVal KeyValue, Len(KeyValue) + 1)
End Sub
当然,到处是注册表的强大模板下载,不过我看着头晕。
我想实现这个效果,调用的时候,第一个参数是注册表键名,第二个参数是键值。
就像这样:MyReg.WriteReg "HKEY_CURRENT_USER\SOFTWARE\flying\Nam", "ranassa"
但是,当我lResult = RegCreateKey(strMajorName, strMinorName, lKeyHand)的时候,总说类型不对不对,我clng(strMajorName)了还是不对。还是只能改成 lResult = RegCreateKey(HKEY_CURRENT_USER, strMinorName, lKeyHand)
下面是源代码
Sub RegWrite(FullKeyName As String, KeyValue As String)
Dim lKeyHand As Long, lResult As Long, lKeyValue As Long, lDataType As Long
Dim strMajorName As String, strMinorName As String, strKeyName As String
strMajorName = Left(FullKeyName, InStr(FullKeyName, "\") - 1)
strKeyName = Mid(FullKeyName, InStrRev(FullKeyName, "\") + 1)
strMinorName = Mid(FullKeyName, InStr(FullKeyName, "\") + 1, Len(FullKeyName) - Len(strMajorName) - Len(strKeyName) - 2) lResult = RegCreateKey(HKEY_CURRENT_USER, strMinorName, lKeyHand)
lResult = RegOpenKeyEx(HKEY_CURRENT_USER, strMinorName, 0&, KEY_ALL_ACCESS, lKeyHand)
lResult = RegSetValueEx(lKeyHand, strKeyName, 0&, REG_SZ, ByVal KeyValue, Len(KeyValue) + 1)
End Sub
Declare Function RegSetvalue Lib "advapi32.dll" Alias "RegSetvalueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const REG_SZ = 1Sub RegWrite(FullKeyName As String, KeyValue As String)
Dim lKeyHand As Long, lResult As Long, lKeyValue As Long, lDataType As Long
Dim strMajorName As String, strMinorName As String, strKeyName As String
strMajorName = Left(FullKeyName, InStr(FullKeyName, "\") - 1)
strKeyName = Mid(FullKeyName, InStrRev(FullKeyName, "\") + 1)
strMinorName = Mid(FullKeyName, InStr(FullKeyName, "\") + 1, Len(FullKeyName) - Len(strMajorName) - Len(strKeyName) - 2) lResult = RegCreateKey(strMajorName, strMinorName, lKeyHand)
lResult = RegOpenKeyEx(HKEY_CURRENT_USER, strMinorName, 0&, KEY_ALL_ACCESS, lKeyHand)
lResult = RegSetValueEx(lKeyHand, strKeyName, 0&, REG_SZ, ByVal KeyValue, Len(KeyValue) + 1)
End Sub
以上代码在我的机器上编译通过