У меня есть следующий фрагмент кода VB для получения подраздела реестра ( НЕ ключ или значение реестра). Мне просто нужно перечислить приложения в подразделе Microsoft (например, Office, Notepad, Keyboard и т. Д.).
Это работало в VB.NET , но я пытаюсь применить тот же код к VBA в макросе, я получаю сообщение об ошибке во время выполнения, сообщающее "Object variable or With block variable not set"
в строке GetOBject
и EmumKey
. Хотя следующий код должен быть совместим для VB.NET и VBA .
Кто-нибудь может объяснить, пожалуйста?
Dim temp As Object
'On Error Resume Next
Const HKEY_CURRENT_USER = &H80000001
temp = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & "." & "\root\default:StdRegProv")
Dim rPath As String
rPath = "Software\Microsoft\IdentityCRL\UserExtendedProperties"
Dim arrSubKeys(5) As Object
temp.EnumKey(HKEY_CURRENT_USER, rPath, arrSubKeys)
For Each ask In arrSubKeys
MsgBox(ask.ToString)
Next