Vbscript 将Windows注册表值读入数组
我必须将Windows注册表值读入VBA中的数组。值的类型为Vbscript 将Windows注册表值读入数组,vbscript,windows-7,Vbscript,Windows 7,我必须将Windows注册表值读入VBA中的数组。值的类型为REG\u MULTI\u SZ Const HKEY_LOCAL_MACHINE = &H80000002 strComputer = "." Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") strKe
REG\u MULTI\u SZ
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Control\Lsa\Authentication Packages"
strValueName = "Sources"
Return = objReg.GetMultiStringValue(HKEY_LOCAL_MACHINE, strKeyPath, _
strValueName, arrValues)
If (Return = 0) And (Err.Number = 0) Then
'Treat the multistring value as a collection of strings
'separated by spaces and output
For Each strValue In arrValues
WScript.Echo strValue
Next
Else
WScript.Echo "GetMultiStringValue failed. Error = " & Err.Number
End If
它给出了一个编号为0的错误,并且没有描述。有什么线索吗?这只是个简单的错误。工作代码在这里
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\"& strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Control\Lsa"
strValueName = "Authentication Packages"
Return = objReg.GetMultiStringValue(HKEY_LOCAL_MACHINE,strKeyPath, strValueName,arrValues)
WScript.Echo "GetMultiStringValue. Return = " & Return
If (Return = 0) And (Err.Number = 0) Then
' Treat the multistring value as a collection of strings
' separated by spaces and output
For Each strValue In arrValues
WScript.Echo strValue
Next
Else
Wscript.Echo "GetMultiStringValue failed. Error = " & Err.Number
End If
这是一个简单的错误。工作代码在这里
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\"& strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Control\Lsa"
strValueName = "Authentication Packages"
Return = objReg.GetMultiStringValue(HKEY_LOCAL_MACHINE,strKeyPath, strValueName,arrValues)
WScript.Echo "GetMultiStringValue. Return = " & Return
If (Return = 0) And (Err.Number = 0) Then
' Treat the multistring value as a collection of strings
' separated by spaces and output
For Each strValue In arrValues
WScript.Echo strValue
Next
Else
Wscript.Echo "GetMultiStringValue failed. Error = " & Err.Number
End If
根据您的截图,您的密钥是“身份验证包”,而不是“来源” 更改此项:
strKeyPath = "SYSTEM\CurrentControlSet\Control\Lsa\Authentication Packages"
strValueName = "Sources"
为此:
strKeyPath = "SYSTEM\CurrentControlSet\Control\Lsa"
strValueName = "Authentication Packages"
根据您的截图,您的密钥是“身份验证包”,而不是“来源” 更改此项:
strKeyPath = "SYSTEM\CurrentControlSet\Control\Lsa\Authentication Packages"
strValueName = "Sources"
为此:
strKeyPath = "SYSTEM\CurrentControlSet\Control\Lsa"
strValueName = "Authentication Packages"
定义“没有快乐”。你有错误吗?不需要的输出?根本没有输出?
arrValues
的实际tpye是多少?(WScript.Echo TypeName(arrValues)
)@AnsgarWiechers-Hi!请看更新的问题。非常感谢。你取决于两个条件。如果Err.Number
为0,但您仍然可以访问Else
分支,这意味着Return
不是0,因此请检查该值。定义“无欢乐”。你有错误吗?不需要的输出?根本没有输出?arrValues
的实际tpye是多少?(WScript.Echo TypeName(arrValues)
)@AnsgarWiechers-Hi!请看更新的问题。非常感谢。你取决于两个条件。如果Err.Number
为0,但仍然到达Else
分支,则表示Return
不是0,因此请检查该值。