Hallo,
Habe bei einigen Clients eine fehlermeldung
GUI.au3 (32) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
$strVersion = $NAVMajorVersion[1] & $NAVMajorVersion[2] & "." & $NAVMajorVersion[3] & "." & $NAVMajorVersion[4] & "." & $NAVMinorVersion
$strVersion = $NAVMajorVersion[1] & $NAVMajorVersion[2] & "." & $NAVMajorVersion[3] & "." & ^ ERROR
->11:55:57 AutoIT3.exe ended.rc:1
Bei anderen gehts eine idee?
Spoiler anzeigen
Func _SymantecGetVersion()
[/autoit] [autoit][/autoit] [autoit]Local $Hostname = ""
Local Const $NAVVersionKey = "HKEY_LOCAL_MACHINE\SOFTWARE\INTEL\LANDesk\VirusProtect6\CurrentVersion"
Local Const $NAVVersionValue = "ProductVersion"
Local Const $NAVEngineKey = "HKEY_LOCAL_MACHINE\SOFTWARE\INTEL\LANDesk\VirusProtect6\CurrentVersion"
Local Const $NAVEngineValue = "ScanEngineVersion"
Local Const $NAVDefinitionsKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Symantec\SharedDefs"
Local Const $NAVDefinitionsValue = "NAVCORP_70"
Local $NAVMajorVersion
Local $NAVMinorVersion
Local $strVersion
Local $strEngine
Local $strDefinitions
Local $tmp, $tmp2, $tmp3
Local $tmpArray
$tmp = RegRead("\\" & $Hostname & "\" & $NAVVersionKey, $NAVVersionValue)
$tmp2 = RegRead("\\" & $Hostname & "\" & $NAVEngineKey, $NAVEngineValue)
$tmp3 = RegRead("\\" & $Hostname & "\" & $NAVDefinitionsKey, $NAVDefinitionsValue)
If $tmp = "" Then
$strVersion = "Unavailable"
Else
$NAVMinorVersion = Dec(StringLeft(Hex($tmp), 4))
$NAVMajorVersion = StringSplit(Dec(StringRight(Hex($tmp), 4)),"")
$strVersion = $NAVMajorVersion[1] & $NAVMajorVersion[2] & "." & $NAVMajorVersion[3] & "." & $NAVMajorVersion[4] & "." & $NAVMinorVersion
EndIf
If $tmp2 = "" Then
$strEngine = "Unavailable"
Else
$strEngine = Dec(StringMid(Hex($tmp2), 1, 2)) & "." & Dec(StringMid(Hex($tmp2), 3, 2)) & "." & Dec(StringMid(Hex($tmp2), 5, 2)) & "." & Dec(StringMid(Hex($tmp2), 7, 2))
EndIf
If $tmp3 = "" Then
$strDefinitions = "Unavailable"
Else
$tmpArray = StringSplit($tmp3, "\")
$strDefinitions = StringMid($tmpArray[$tmpArray[0]], 7, 2) & "/" & StringMid($tmpArray[$tmpArray[0]], 5, 2) & "/" & StringMid($tmpArray[$tmpArray[0]], 1, 4) & " rev." & StringMid($tmpArray[$tmpArray[0]], 10, 3)
EndIf
Local $Array[3] = [$strDefinitions,$strVersion,$strEngine]
Return $Array
EndFunc
$arr2 = _SymantecGetVersion()
[/autoit] [autoit][/autoit] [autoit]If IsArray($arr2) Then
msgbox(1,"","Definitions date: " & $arr2[0] & @CRLF & _
"Software version: " & $arr2[1] & @CRLF & _
"Engine version: " & $arr2[2])
Else
MsgBox(1,"","Failed with error code: " & $arr2)
EndIf