Mecano Posted September 20, 2014 Share Posted September 20, 2014 Dear forum members, I try to find a solution which version of the .NET Framework 4 is installed (or not at all) on the PC. From the scriptingguy site I have made this one: expandcollapse popup#cs ---------------------------------------------------------------------------- AutoIt Version: 3.2.10.0 Author: myName Script Function: Template AutoIt script. It’s very important to know which version of the .NET Framework is installed on a computer, especially when you’re working with custom applications written in-house; the Scripting Guys know from painful experience that custom applications often require a very specific version of the .NET Framework. Any version earlier - or later - and the application might not run. Because of that you might think there’s a very quick, easy way to determine which version (or versions) of the .NET Framework is installed on a computer. Well, if there is, we couldn’t find it: we were unable to locate a COM object or a specific registry key that could tell us, once and for all, which version is installed on a computer. The best we could do was this brute force method, a method which is accompanied by a caveat we’ll talk about momentarily. http://blogs.technet.com/b/heyscriptingguy/archive/2005/07/12/how-can-i-tell-which-version-of-the-net-framework-is-installed-on-a-computer.aspx #ce ---------------------------------------------------------------------------- Opt("MustDeclareVars", 1) Global $wbemFlagReturnImmediately = 0x10, _ ;DO NOT CHANGE $wbemFlagForwardOnly = 0x20 ;DO NOT CHANGE local $NetVersion1 = _GetNetVersion1() MsgBox(0, ".NET Framework ", $NetVersion1) ; debug Func _GetNetVersion1() Local $strComputer = "localhost" local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\") ; ??? ; Local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2") ; ? ; Local $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2") ; ? ; Local $objWMIService = ObjGet("winmgmts:{(RemoteShutdown)}//" & $strComputer & "\root\CIMV2") ; ? ;Local $colItems = $objWMIService.ExecQuery("Select * from Win32_Product"); ? Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Product", "WQL", _ $wbemFlagReturnImmediately + $wbemFlagForwardOnly) For $objItem In $colItems If StringInStr($objItem.Name, "Microsoft .NET Framework") > 0 Then If $objItem.Version > "4.*" Then Return "Found: " & $objItem.Name & @CRLF & "Version: " & $objItem.Version Else Return "Microsoft .NET Framework v.4 not found!" EndIf EndIf Next EndFunc ;==>_GetNetVersion Don't know if this the right way to do it, never worked with the WMIService Below I found a other Autoitscript local $NetVersion2 = _GetNetVersion2() MsgBox(0, ".NET Framework ", $NetVersion2) ; debug Func _GetNetVersion2() Dim $strComputer, $objWMIService $strComputer = "." $objWMIService = ObjGet("winmgmts:{(RemoteShutdown)}//" & $strComputer & "\root\CIMV2") Local $colItems = "" $colItems = $objWMIService.ExecQuery("Select * from Win32_Product") For $objItem In $colItems Select Case StringInStr($objItem.Name, 'Microsoft .NET Framework') If $objItem.Version > "4.*" Then Return "Found: " & $objItem.Name & @CRLF & "Version: " & $objItem.Version Else Return "Microsoft .NET Framework v.4 not found!" EndIf EndSelect Next EndFunc ;==>_Read_Products Both scripts are quite slow, brute force method (loop through the collection of software products installed using .MSI files). From the >autoitscript.com/forum I found this script below but shows .NET Framework v4 while I working with 4.5.2. Other versions of .NET are not important, the only thing I want to know which version of .NET 4 is installed. expandcollapse popup; ========================================================================================================================== ; Func _dotNetGetVersions($bOnlyInstalled=False) ; ; Function to return information on which .NET versions are/were installed. ; NOTES: No Service Pack information is retrieved, although that can be obtained using the methods ; in the MSDN link below. ; ; Also NOTE: As with anything I program (in full or part), keep the header WITH the function if used or shared. ; ; .NET Framework detection resource: ; MSDN KB318785: 'How to determine which versions and service pack levels of the Microsoft .NET Framework are installed': ; @ <a href='http://msdn.microsoft.com/en-us/kb/kbarticle.aspx?id=318785' class='bbc_url' title='External link' rel='nofollow external'>http://msdn.microsoft.com/en-us/kb/kbarticle.aspx?id=318785</a> ; ; $bOnlyInstalled = If True, it will not report on any versions that were uninstalled ; ; Returns: ; Success: An array of information, as follows: ; [0][0] = Total # found ; [x][0] = Numerical version (can be whole number or floating point [1, 1.1, 2, 3, 3.5, 4]) ; [x][1] = Full version name string - this can be used to probe further sub-version info (example: "v2.0.50727") ; [x][2] = 0 or 1 - indicates whether 'client' or normal installation is installed ; (From version 4+, there can be a client and/or a full install - though full seems to install client.) ; [x][3] = 0 or 1 - indicates whether 'full' install of the .NET component is installed (version 4+ only) ; Failure: '' and @error set: ; @error = -3 = .NET key could not be read, or .NET is not installed (the latter *most* likely) ; (@extended returns @error state from last Reg* call.) ; ; Author: Ascend4nt ; ========================================================================================================================== Func _dotNetGetVersions($bOnlyInstalled=False) Local $i=1,$iClientInstall,$iFullInstall,$iNum,$aVersions[100][4],$iTotal=0,$bVer4Found=0 Local $sKey="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP",$sSubKey ; Detect v1.0 (special key) RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\v1.0","3705") ; If value was read (key exists), and is of type REG_SZ (1 as defined in <Constants.au3>), v1.0 is installed If @error=0 And @extended=1 Then $iTotal+=1 $aVersions[$iTotal][0]=1.0 $aVersions[$iTotal][1]='v1.0.3705' $aVersions[$iTotal][2]=1 $aVersions[$iTotal][3]=1 EndIf While 1 $iClientInstall=0 $iFullInstall=0 $sSubKey=RegEnumKey($sKey,$i) If @error Then ExitLoop $i+=1 ; 'v4.0' is a deprecated version. Since it comes after 'v4' (the newer version) while enumerating, ; a simple check if 'v4' has already been found is sufficient If $sSubKey='v4.0' And $bVer4Found Then ContinueLoop $iNum=Number(StringMid($sSubKey,2)) ; cuts off at any 2nd decimal points (obviously) ; Note - one of the SubKeys is 'CDF'. Number() will return 0 in this case [we can safely ignore that] If $iNum=0 Then ContinueLoop ;~ ConsoleWrite(".NET Framework SubKey #"&$i&": "&$sSubKey&", Number extracted (0 for non-versioned items):"&$iNum&@LF) If $iNum<4 Then $iClientInstall=RegRead($sKey&'\'&$sSubKey,'Install') If $iClientInstall Then $iFullInstall=1 ; older versions were all-or-nothing I believe ;~ If @error Then $iClientInstall=0 ; (@error from $iClientInstall) -> caught below Else ; Version 4 works with one or both of these keys. One can only hope new versions keep the same organization $iFullInstall=RegRead($sKey&'\'&$sSubKey&'\Full','Install') If @error Then $iFullInstall=0 $iClientInstall=RegRead($sKey&'\'&$sSubKey&'\Client','Install') ;~ If @error Then $iClientInstall=0 ; Caught below If $iNum<5 Then $bVer4Found=True EndIf If @error Then $iClientInstall=0 If $bOnlyInstalled And $iClientInstall=0 And $iFullInstall=0 Then ContinueLoop $iTotal+=1 $aVersions[$iTotal][0]=$iNum $aVersions[$iTotal][1]=$sSubKey $aVersions[$iTotal][2]=$iClientInstall $aVersions[$iTotal][3]=$iFullInstall WEnd If $iTotal=0 Then Return SetError(-3,@error,'') $aVersions[0][0]=$iTotal ReDim $aVersions[$iTotal+1][4] Return $aVersions EndFunc ; ------- TEST ---------- #include <Array.au3> $adotNetVersions=_dotNetGetVersions() $adotNetVersions[0][0]="Main Version #" $adotNetVersions[0][1]="Full version string" $adotNetVersions[0][2]="Client/General Install?" $adotNetVersions[0][3]="Full Install?" _ArrayDisplay($adotNetVersions,'.NET versions') Somebody know a good solution, the script has to find .NET 4.* on x32 and x64 machines Regards, Mecano Link to comment Share on other sites More sharing options...
Kyan Posted September 21, 2014 Share Posted September 21, 2014 (edited) I don't know why you're using wmic for this, but I guess through registry would be easy, list HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDP This should do the job Local $z=0,$sKeyName,$success=0 Do $z+=1 $sKeyName = RegEnumKey("HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP",$z) If StringRegExp($sKeyName,"v4|v4.\d+") Then ConsoleWrite(".NET Framework v4 installed!"&@LF) $success=1 EndIf Until $sKeyName='' Or $success if Not $success then consolewrite("You need install it son."&@lf) Exit Edited September 21, 2014 by Kyan Heroes, there is no such thing One day I'll discover what IE.au3 has of special for so many users using it.C'mon there's InetRead and WinHTTP, way better Link to comment Share on other sites More sharing options...
Mecano Posted September 21, 2014 Author Share Posted September 21, 2014 (edited) Wow it's fast, but it I need the ,NET 4 version (this is for debugging) I don't know why you're using wmic for this, but I guess through registry would be easy, list The reason it will found the installed version .NET 4 version (maybe my question was not clear enough) wmic : Found: Microsoft .NET Framework 4.5.1 (NLD) Version: 4.5.50938 not good, pickup the first instance this will find the version of the .NET4 language pack The installed .NET 4 version used, is 4.5.2. (v4.5.51209) Something that loop trough the RegKey CurrentVersionUninstall and collect all .NET 4 instances example find: Microsoft .NET Framework 4.5.2 _NETFramework4() Func _NETFramework4() Local $sRegKey, $iKey, $sHold, $sNETRegKey $sRegKey = "HKLM64\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" $iKey = 1 While 1 $sHold = RegEnumKey($sRegKey, $iKey) If @error Then ExitLoop $iKey += 1 If RegRead($sRegKey & $sHold, "DisplayName") = 'Microsoft .NET Framework 4.5.2' Then $sNETRegKey = RegRead($sRegKey & $sHold, "DisplayVersion") If Not @error Then ExitLoop EndIf EndIf WEnd MsgBox(4096, "Result", "Microsoft .NET Framework 4.5.2" & @CRLF & "version: " & $sNETRegKey) EndFunc Script below will loop trough all installed software, here I need to filter the .NET 4 out of it (inclusive installed language-pack) and return it to a msgbox or ClipPut (working with arrays is not my best skills). expandcollapse popup#comments-start Title: Computer Information Automation UDF Library for AutoIt3 - EXAMPLES Filename: CompInfoExamples.au3 Description: Examples using the UDF's from CompInfo.au3 Author: Jarvis J. Stubblefield (JSThePatriot) http://www.vortexrevolutions.com/ Version: 00.03.08 Last Update: 11.09.06 Requirements: AutoIt v3.2 +, Developed/Tested on WindowsXP Pro Service Pack 2 Notes: Errors associated with incorrect objects will be common user errors. AutoIt beta 3.1.1.63 has added an ObjName() function that will be used to trap and report most of these errors. Special thanks to Firestorm (Testing, Use), Koala (Testing, Bug Fix), and everyone else that has helped in the creation of this Example File. #comments-end Func _ComputerGetSoftware(ByRef $aSoftwareInfo) Local Const $UnInstKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" Local $i = 1 Dim $aSoftwareInfo[1][4] While 1 $AppKey = RegEnumKey($UnInstKey, $i) If @error <> 0 Then ExitLoop ReDim $aSoftwareInfo[UBound($aSoftwareInfo) + 1][2] $aSoftwareInfo[$i][0] = StringStripWS(StringReplace(RegRead($UnInstKey & "\" & $AppKey, "DisplayName"), " (remove only)", ""), 3) $aSoftwareInfo[$i][1] = StringStripWS(RegRead($UnInstKey & "\" & $AppKey, "DisplayVersion"), 3) $i += 1 WEnd $aSoftwareInfo[0][0] = UBound($aSoftwareInfo, 1) - 1 If $aSoftwareInfo[0][0] < 1 Then SetError(1, 1, 0) EndIf EndFunc Dim $Software _ComputerGetSoftware($Software) If @error Then $error = @error $extended = @extended Switch $extended Case 1 _ErrorMsg("Array contains no data.") EndSwitch EndIf For $i = 1 To $Software[0][0] Step 1 MsgBox(0, "_ComputerGetSoftware", "Name: " & $Software[$i][0] & @CRLF & _ "Version: " & $Software[$i][1]) Next Func _ErrorMsg($message, $time = 0) MsgBox(48 + 262144, "Error!", $message, $time) EndFunc Edited September 21, 2014 by Mecano Link to comment Share on other sites More sharing options...
j0kky Posted September 21, 2014 Share Posted September 21, 2014 type: "check version net framework" on google First two results: http://support.microsoft.com/kb/318785/en-us http://msdn.microsoft.com/en-us/library/hh925568(v=vs.110).aspx BrewManNH 1 Spoiler Some UDFs I created: Winsock UDF STUN UDF WinApi_GetAdaptersAddresses _WinApi_GetLogicalProcessorInformation Bitwise with 64 bit integers An useful collection of zipping file UDFs Link to comment Share on other sites More sharing options...
Kyan Posted September 21, 2014 Share Posted September 21, 2014 (edited) hum, the last script doesn't do the job? EDIT2: ConsoleWrite(NetFrameworkVersion()) Exit Func NetFrameworkVersion() Local $sKey,$sBaseKeyName,$sBVersion,$sBBVersion,$versions='',$z=0,$i=0 $sKey = "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP" Do $z+=1 $sBaseKeyName = RegEnumKey($sKey,$z) If @error Then ExitLoop If StringLeft($sBaseKeyName,1) = "v" Then ;1st check $sBVersion = RegRead($sKey&"\"&$sBaseKeyName,"Version") If Not @error Then $versions&=$sBVersion&@LF Else $i=0 Do $i+=1 $sKeyName = RegEnumKey($sKey&"\"&$sBaseKeyName,$i) If @error Then ExitLoop $sBBVersion = RegRead($sKey&"\"&$sBaseKeyName&"\"&$sKeyName,"Version") Until $sKeyName='' Or $sBBVersion <> '' If $sBBVersion <> '' Then $versions&=$sBBVersion&@LF EndIf EndIf Until $sBaseKeyName = '' Return $versions EndFunc If you want it in array would be easier to work with the different values you're looking for a specific version? or at least version 4.0 needs to be installed? if so you can match that version through NetFrameworkVersion() function and return 1 or 0 (simplifies your script) Edited September 21, 2014 by Kyan Heroes, there is no such thing One day I'll discover what IE.au3 has of special for so many users using it.C'mon there's InetRead and WinHTTP, way better Link to comment Share on other sites More sharing options...
Mecano Posted September 21, 2014 Author Share Posted September 21, 2014 (edited) Kyan, yes .NET 4 is between a big list of installed software need to filter the .NET 4 out of it (inclusive installed language-pack) and return it to a msgbox or ClipPut (working with arrays is not my best skills). @j0kky the problem with HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDPv4 will found a lot of keys, I need the current installed version(s) regkeys NET Framework SetupNDPv4: expandcollapse popup[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client] "Version"="4.5.51209" "TargetVersion"="4.0.0" "Install"=dword:00000001 "MSI"=dword:00000001 "Servicing"=dword:00000000 "Release"=dword:0005cbf5 "InstallPath"="C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client\1033] "Version"="4.5.51209" "TargetVersion"="4.0.0" "Install"=dword:00000001 "Servicing"=dword:00000000 "Release"=dword:0005cbf5 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client\1043] "Version"="4.5.50938" "TargetVersion"="4.0.0" "Install"=dword:00000001 "Servicing"=dword:00000000 "Release"=dword:0005c786 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full] "Version"="4.5.51209" "TargetVersion"="4.0.0" "Install"=dword:00000001 "MSI"=dword:00000001 "Servicing"=dword:00000000 "InstallPath"="C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\" "Release"=dword:0005cbf5 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\1033] "Version"="4.5.51209" "TargetVersion"="4.0.0" "Install"=dword:00000001 "Servicing"=dword:00000000 "Release"=dword:0005cbf5 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\1043] "Version"="4.5.50938" "TargetVersion"="4.0.0" "Install"=dword:00000001 "Servicing"=dword:00000000 "Release"=dword:0005c786 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.0] @="deprecated" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.0\Client] "Version"="4.0.0.0" "Install"=dword:00000001 Edit1; you're looking for a specific version? or at least version 4.0 needs to be installed? At least 4.0 needs to be installed and if there are any language packs installed... see image Edited September 21, 2014 by Mecano Link to comment Share on other sites More sharing options...
Kyan Posted September 21, 2014 Share Posted September 21, 2014 From what I see, you can check the main version through HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDP subkeys, v4 or v4.0, for LP's you just need to look for subkeys inside v4.0 or v4 with 4digits (1033=english; 2070=portuguese; 1043=netherlands) Heroes, there is no such thing One day I'll discover what IE.au3 has of special for so many users using it.C'mon there's InetRead and WinHTTP, way better Link to comment Share on other sites More sharing options...
Mecano Posted September 21, 2014 Author Share Posted September 21, 2014 Kyan, I think I am lost, after trying this if so you can match that version through NetFrameworkVersion() function and return 1 or 0 (simplifies your script) gonna take a little break otherwise I get Kyan thank you for support Link to comment Share on other sites More sharing options...
jguinch Posted September 21, 2014 Share Posted September 21, 2014 Using >_UninstallList, you can list all installed versions : #Include <Array.au3> Local $aVersions[1], $iIndex = 0 Local $aList = _UninstallList("DisplayName", "Microsoft .NET Framework", 0, 3) If NOT IsArray($aList) Then Exit For $i = 1 To $aList[0][0] For $j = 0 To Ubound($aVersions) - 1 If $aList[$i][4] = $aVersions[$j] Then ContinueLoop 2 Next Redim $aVersions[$iIndex + 1] $aVersions[$iIndex] = $aList[$i][4] $iIndex += 1 Next _ArrayDisplay($aVersions) Spoiler Network configuration UDF, _DirGetSizeByExtension, _UninstallList Firefox ConfigurationArray multi-dimensions, Printer Management UDF Link to comment Share on other sites More sharing options...
Mecano Posted September 21, 2014 Author Share Posted September 21, 2014 jguinch, this is a great function thank you, _ArrayDisplay shows the installed version(s) How to save this information to ClipPut or txt file with "DisplayName" and "DisplayVersion"? Example ClipPut or txt file Microsoft .NET Framework 4.5.1 (NLD) Version: 4.5.50938 Microsoft .NET Framework 4.5.2 Version: 4.5.51209 or Example2 Microsoft .NET Framework 4.5.1 (NLD) Version: 4.5.50938 Microsoft .NET Framework 4.5.2 Version: 4.5.51209 _FileWriteFromArray($sFilePath, $aVersions) still saves only the version numbers Examples.txt 4.5.51209 4.5.50938 arrays are not mine best skills (still learning) Link to comment Share on other sites More sharing options...
jguinch Posted September 21, 2014 Share Posted September 21, 2014 (edited) Local $aList = _UninstallList("DisplayName", "Microsoft .NET Framework", 0, 3) If NOT IsArray($aList) Then Exit _ArrayDisplay($aList) For $i = 1 To $aList[0][0] FileWrite("framworkversions.txt", $aList[$i][2] & @TAB & $aList[$i][4] & @CRLF) Next Edited September 21, 2014 by jguinch Spoiler Network configuration UDF, _DirGetSizeByExtension, _UninstallList Firefox ConfigurationArray multi-dimensions, Printer Management UDF Link to comment Share on other sites More sharing options...
Mecano Posted September 21, 2014 Author Share Posted September 21, 2014 (edited) jguinch, Thanks for the code works great with Win 7, after testing with Win 8 the UninstallList is not a option By default Windows 8 has .NET 4.5 installed, the function will only detect .NET if .NET 4.5.1 or 4.5.2 is installed. sorry Back to:HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDPhttp://msdn.microsoft.com/en-us/library/hh925568(v=vs.110).aspx Fixing a .NET Framework 4.5.1 detection logic problem on Windows 8.1 The deployment guide says that an application can test whether the .NET Framework 4.5 or later is installed by checking the HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDPv4Full folder in the registry for a DWORD value named Release. A value of 378758 means that the .NET Framework 4.5.1 is installed. This logic works correctly for the redistributable version of the .NET Framework 4.5.1. However, on Windows 8.1, the Release value is set to 378675 instead, so this logic doesn’t work on Windows 8.1. I have updated all of the following tools and samples to correctly detect the .NET Framework 4.5.1 in both the redistributable case and the Windows 8.1 OS install case: Don't know if it's possible in Autoit detecting by DWORD value (the link below is with C++ source)http://blogs.msdn.com/b/astebner/archive/2009/06/16/9763379.aspx http://cid-27e6a35d1a492af7.skydrive.live.com/self.aspx/Blog|_Tools/detectfx|_new.cpp.txt Creating a Visual Studio project to compile the sample code The sample code available for download via the links above is in the form of a single C++ source (.cpp) file. If you are having trouble getting this code to compile on your system, you can refer to the instructions in this blog post to create a Visual C++ project that can be used to compile the sample code into a sample executable file. subkeys, v4 or v4.0, for LP's you just need to look for subkeys inside v4.0 or v4 with 4digits (1033=english; 2070=portuguese; 1043=netherlands) this what I done so far If StringLeft($sBaseKeyName,1) = "v" Then changed to: If StringLeft($sBaseKeyName,2) = "v4" Then Console: 4.5.51209 4.0.0.0 I have no idea how to look for the subkeys Edited September 22, 2014 by Mecano Link to comment Share on other sites More sharing options...
Solution j0kky Posted September 22, 2014 Solution Share Posted September 22, 2014 Using official documentation that I already provided in post >#4, if you want to know only if at least version 4 is installed you can do: $version = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client", "Version") If @error Then $version = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full", "Version") If @error Then $version = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full", "Release") If @error Then ConsoleWrite("Net Framework v4 and higher version are not installed" & @CRLF) Else $version = Dec($version) EndIf EndIf EndIf If $version Then ConsoleWrite("At least Net Framework v4 is installed with version: " & $version) The meaning of $version value for .NET Framework 4.5.x is reported in this page. If you want to know about Language Pack you can read this one for v4 and this one for v4.5.x Spoiler Some UDFs I created: Winsock UDF STUN UDF WinApi_GetAdaptersAddresses _WinApi_GetLogicalProcessorInformation Bitwise with 64 bit integers An useful collection of zipping file UDFs Link to comment Share on other sites More sharing options...
Mecano Posted September 22, 2014 Author Share Posted September 22, 2014 j0kky, solved I did read your first post, but putting it together All clear now, looking at your script make sense. Thank you, all other members thank you too Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now