先看以下代码Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Private Sub Form_Load()
Dim hKey As Long
Dim strKey As String
Dim hSubkey As Long
hKey = &H80000007
strKey = "TEST"
'这句预期返回0 实测返回0
Debug.Print RegCreateKey(HKEY_CURRENT_USER, _
strKey, hSubkey),
'这句预期返回0 实测返回87 求解
Debug.Print RegCreateKey(HKEY_LOCAL_MACHINE, _
strKey, hSubkey)
End Sub
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Private Sub Form_Load()
Dim hKey As Long
Dim strKey As String
Dim hSubkey As Long
hKey = &H80000007
strKey = "TEST"
'这句预期返回0 实测返回0
Debug.Print RegCreateKey(HKEY_CURRENT_USER, _
strKey, hSubkey),
'这句预期返回0 实测返回87 求解
Debug.Print RegCreateKey(HKEY_LOCAL_MACHINE, _
strKey, hSubkey)
End Sub
但手工用regedit.exe操作注册表一点问题没有
求解
而HKEY_CURRENT_USER下面可以直接建立一级子键,所以不会出错。