Function CheckDotNet(options $strComputer)
; Function: CheckDotNet
;
; Author: Brad Van Orden
; Based on Microsoft Developer Network article:
; How to: Determine Which .NET Framework Versions Are Installed
;
; Syntax: CheckDotNet(\[{$strComputer])
;
; Parameters: Optional name of remote system to query.
; If omitted, will query the current system.
;
; Returns: Two dimensional array. The first dimension will be the major
; version number. The second the complete version.
;
; Dependencies: None
;
DIM $strComputer, $strKey, $intIndex, $strKeyName, $strVers, $arrVer[0,1]
;
If $strComputer = ""
$strComputer = "."
EndIf
;
$strKey = "\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"
$intIndex = 0
If KeyExist($strKey)
$strKeyName = EnumKey($strKey, $intIndex)
While Not @ERROR
If $strKeyName <> "CDF"
; Want to ignore the CDF key
REDIM PRESERVE $arrVer[$intIndex, $intIndex + 1]
If Left($strKeyName, 2) = "v1"
; The version 1 setup is different. Need to treat it separately.
$arrVer[$indIndex, 0] = Left($strKeyName, 2)
$arrVer[$intIndex, 1] = Substr($strKeyName, 2)
$intIndex = $intIndex + 1
Else
If $strKeyName <> "v4.0"
; Ignore that subkey
If $strKeyName = "v4"
$strVers = ReadValue("\\" + $strComputer + $strKey + "\Full", "Version")
$arrVer[$intIndex, 0] = $strKeyName
$arrVer[$intIndex, 1] = $strVers
$intIndex = $intIndex + 1
Else
$strVers = ReadValue("\\" + $strComputer + $strKey, "Version")
$arrVer[$intIndex, 0] = $strKeyName
$arrVer[$intIndex, 1] = $strVers
$intIndex = $intIndex + 1
EndIf
EndIf
EndIf
EndIf
Loop
EndIf
$CheckDotNet = $arrVer
EndFunction