我有一个奇怪的问题...我有一个vbs脚本,该脚本枚举了所有卸载子项,并向我返回我要搜索的DisplayName的值。 为了理解,下面是这段代码:
strsoft = "MyApplicationName"
strKeyPath = "software\microsoft\windows\currentversion\uninstall" ' Root level
objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
For Each subkey In arrSubKeys
sDisplayName = objShell.Regread("HKLM\" & strKeyPath & "\" & subkey & "\Displayname")
sVersion = objShell.Regread("HKLM\" & strKeyPath & "\" & subkey & "\DisplayVersion")
if instr(lcase(sDisplayName), lcase(strsoft)) > 0 then
sUninstallString = objShell.Regread("HKLM\" & strKeyPath & "\" & subkey & "\uninstallstring")
If instr(lcase(sUninstallString), "msiexec") Then
' msi find
If ReturnCode = 0 OR ReturnCode = 3010 Then
' log success
Else
' log fail
End If
Else ' Uninstallstring <> msiexec
' Not an msi
End If
end if
Next
但是,如果注册表中有一些子项不包含“ DisplayName”值,则它会返回错误信息……我不知道该如何解释:(
例如: {F2D34ABB-6834-4372-8199-870FCF59EFAB}:DisplayName = MyApplicationName; DisplayVersion = 1.0,依此类推。 在下面我有: {F38DB479-C9A3-412F-83C8-09DFF5BBC210}仅包含一个条目:“ DisplayVersion = 12.5”
我的脚本告诉我,我的应用程序有2个现有条目...这是错误的
这让我发疯了...非常感谢您的帮助。