jazzyjeff Posted May 2, 2012 Share Posted May 2, 2012 Hello, I have a program that checks the registry for specific applications and reads the version number of that program. The version of that application is then compared to the latest release on our network, and if the version number is older, then the application is flagged for requiring an update. So as an example, the latest version of Flash has a version number of, 11.2.202.233. If the version I had on the network is 11.2.202.234, the program should change a value in my list to say "Update required". The problem is that the program doesn't seem to recognise multiple decimal points as a number for obvious reasons. The trouble is if I compare strings I am not going to be getting an accurate reading. For example if a user had Flash 11.2.202.233, and I haven't updated it yet on the network and am still on 11.2.202.200, it doesn't recognise that the version number is less, because the first digits are still 11.2. If it always went 11.2, 11.3, 11.4 etc it wouldn't be a problem. So this is what I have right now: For $w = 1 To 500 $AppKey = RegEnumKey($uRegKey, $w) If StringInStr(RegRead($uRegKey & "\" & $AppKey, "DisplayName"), $iUpdate[$z][0]) Then $uVer = RegRead($uRegKey & "\" & $AppKey, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer, 2) EndIf Next If $uVer = "" Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Not installed", 3) ElseIf $uVer < $iUpdate[$z][1] Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Update required", 3) ElseIf $uVer > $iUpdate[$z][1] Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Installed", 3) Else _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Installed", 3) EndIf $uVer = "" So to summarize. How can I read this, 11.2.2.2, as an Integer? Thanks. Jeff Link to comment Share on other sites More sharing options...
water Posted May 2, 2012 Share Posted May 2, 2012 "Normalize" the string to numbers with 3 digits and then you can do a string comparison. Global $sNewversion = "" Global $sVersion = "11.2.2.2" Global $asNumbers = StringSplit($sVersion, ".") For $i = 1 To $asNumbers[0] If $i = 1 Then $sNewVersion = StringFormat("%03i", $asNumbers[$i]) Else $sNewVersion = $sNewVersion & "." & StringFormat("%03i", $asNumbers[$i]) EndIf Next ConsoleWrite($sNewVersion & @CRLF) Returns: 011.002.002.002 My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
jazzyjeff Posted May 2, 2012 Author Share Posted May 2, 2012 Excellent! Thanks Water. I was able to implement this in my script and it works great! Link to comment Share on other sites More sharing options...
water Posted May 2, 2012 Share Posted May 2, 2012 Glad I could help My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
jerseyzuks Posted June 6, 2012 Share Posted June 6, 2012 Excellent! Thanks Water. I was able to implement this in my script and it works great!Jeff, would you mind posting a full version of your changes? A script to check and compare flash versions would be extremely helpful to myself, and I am sure others could use it as well!Thanks in advance Link to comment Share on other sites More sharing options...
Robjong Posted June 6, 2012 Share Posted June 6, 2012 (edited) There is _VersionCompare...#include <Misc.au3> $sVersions1 = '1.0.1.0' $sVersions2 = '1.0.1.1' $iResult = _VersionCompare($sVersions1, $sVersions2) $sResult = "Version 1 is greater" If $iResult == -1 Then $sResult = "Version 2 is greater" ConsoleWrite($iResult & ' ' & $sResult & ' ' & $sVersions1 & ' ' & $sVersions2 & @CRLF) Edited June 6, 2012 by Robjong Link to comment Share on other sites More sharing options...
jazzyjeff Posted June 6, 2012 Author Share Posted June 6, 2012 Thanks Robjong. I'll take a look at that, as I hadn't seen it before. Here is the code I now have JerseyzUks. It added a lot more regsitry checked because I found some software adds itself in different places in the registry. It seems to work well, but perhaps messy... expandcollapse popupFunc _UpdateList() _GUICtrlListView_DeleteAllItems($listSoftware) If @OSArch = "x86" Then Local $iUpdate = IniReadSection("\\server\share$\software.ini", "ApplicationNamex86") Local $uRegKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" Local $uRegKey2 = "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" Local $uRegKey3 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products" Local $iString $iInstall2 = IniReadSection("\\server\share$\software.ini", "Installx86") If IsArray($iUpdate) Then For $z = 1 To $iUpdate[0][0] _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $iUpdate[$z][1], 1) For $v = 1 To $iInstall2[0][0] If StringInStr($iUpdate[$z][0], $iInstall2[$v][0]) Then $iString = _StringBetween($iInstall2[$v][1], '"', '"') If @error Then If FileExists($iInstall2[$v][1]) Then For $w = 1 To 500 $AppKey = RegEnumKey($uRegKey, $w) If StringInStr(RegRead($uRegKey & "\" & $AppKey, "DisplayName"), $iUpdate[$z][0]) Then $uVer = RegRead($uRegKey & "\" & $AppKey, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer, 2) EndIf $AppKey1 = RegEnumKey($uRegKey2, $w) If StringInStr(RegRead($uRegKey2 & "\" & $AppKey1, "DisplayName"), $iUpdate[$z][0]) Then $uVer1 = RegRead($uRegKey2 & "\" & $AppKey1, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer1, 2) EndIf $AppKey2 = RegEnumKey($uRegKey3, $w) If StringInStr(RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayName"), $iUpdate[$z][0]) Then $uVer2 = RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer2, 2) EndIf Next Local $sVer = $uVer Local $sVer1 = $uVer1 Local $sVer2 = $uVer2 Local $sNetVersion = $iUpdate[$z][1] Local $asNumbersLocal = StringSplit($sVer, ".") Local $asNumbersLocal1 = StringSplit($sVer1, ".") Local $asNumbersLocal2 = StringSplit($sVer2, ".") Local $asNumbersNetwork = StringSplit($sNetVersion, ".") Local $updateReq = "" If $sVer = "" Then For $i = 1 To $asNumbersLocal1[0] If $asNumbersLocal1[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next ElseIf $sVer1 = "" Then For $i = 1 To $asNumbersLocal2[0] If $asNumbersLocal2[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next Else For $i = 1 To $asNumbersLocal[0] If $asNumbersLocal[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next EndIf If $uVer = "" And $uVer1 = "" And $uVer2 = "" Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Not installed", 3) ElseIf $updateReq = True Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Update available", 3) Else _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Installed", 3) EndIf Else ;Reload the availability columns _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Unavailable", 3) EndIf $uVer = "" $uVer1 = "" $uVer2 = "" Else If FileExists($iString[0]) Then For $w = 1 To 500 $AppKey = RegEnumKey($uRegKey, $w) If StringInStr(RegRead($uRegKey & "\" & $AppKey, "DisplayName"), $iUpdate[$z][0]) Then $uVer = RegRead($uRegKey & "\" & $AppKey, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer, 2) EndIf $AppKey1 = RegEnumKey($uRegKey2, $w) If StringInStr(RegRead($uRegKey2 & "\" & $AppKey1, "DisplayName"), $iUpdate[$z][0]) Then $uVer1 = RegRead($uRegKey2 & "\" & $AppKey1, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer1, 2) EndIf $AppKey2 = RegEnumKey($uRegKey3, $w) If StringInStr(RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayName"), $iUpdate[$z][0]) Then $uVer2 = RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer2, 2) EndIf Next Local $sVer = $uVer Local $sVer1 = $uVer1 Local $sVer2 = $uVer2 Local $sNetVersion = $iUpdate[$z][1] Local $asNumbersLocal = StringSplit($sVer, ".") Local $asNumbersLocal1 = StringSplit($sVer1, ".") Local $asNumbersLocal2 = StringSplit($sVer2, ".") Local $asNumbersNetwork = StringSplit($sNetVersion, ".") Local $updateReq = "" If $sVer = "" Then For $i = 1 To $asNumbersLocal1[0] If $asNumbersLocal1[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next ElseIf $sVer1 = "" Then For $i = 1 To $asNumbersLocal2[0] If $asNumbersLocal2[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next Else For $i = 1 To $asNumbersLocal[0] If $asNumbersLocal[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next EndIf If $uVer = "" And $uVer1 = "" And $uVer2 = "" Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Not installed", 3) ElseIf $updateReq = True Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Update available", 3) Else _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Installed", 3) EndIf Else ;Reload the availability columns _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Unavailable", 3) EndIf $uVer = "" $uVer1 = "" $uVer2 = "" EndIf EndIf Next Next EndIf ElseIf @OSArch = "x64" Then Local $iUpdate = IniReadSection("\\server\share$\software.ini", "ApplicationNamex64") Local $uRegKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" Local $uRegKey1 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" Local $uRegKey2 = "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" Local $uRegKey3 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products" $iInstall2 = IniReadSection("\\server\share$\software.ini", "Installx64") Local $iString If IsArray($iUpdate) Then For $z = 1 To $iUpdate[0][0] _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $iUpdate[$z][1], 1) For $v = 1 To $iInstall2[0][0] If StringInStr($iUpdate[$z][0], $iInstall2[$v][0]) Then $iString = _StringBetween($iInstall2[$v][1], '"', '"') If @error Then If FileExists($iInstall2[$v][1]) Then For $w = 1 To 500 $AppKey = RegEnumKey($uRegKey, $w) If StringInStr(RegRead($uRegKey & "\" & $AppKey, "DisplayName"), $iUpdate[$z][0]) Then $uVer = RegRead($uRegKey & "\" & $AppKey, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer, 2) EndIf $AppKey1 = RegEnumKey($uRegKey2, $w) If StringInStr(RegRead($uRegKey2 & "\" & $AppKey1, "DisplayName"), $iUpdate[$z][0]) Then $uVer1 = RegRead($uRegKey2 & "\" & $AppKey1, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer1, 2) EndIf $AppKey2 = RegEnumKey($uRegKey3, $w) If StringInStr(RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayName"), $iUpdate[$z][0]) Then $uVer2 = RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer2, 2) EndIf Next Local $sVer = $uVer Local $sVer1 = $uVer1 Local $sVer2 = $uVer2 Local $sNetVersion = $iUpdate[$z][1] Local $asNumbersLocal = StringSplit($sVer, ".") Local $asNumbersLocal1 = StringSplit($sVer1, ".") Local $asNumbersLocal2 = StringSplit($sVer2, ".") Local $asNumbersNetwork = StringSplit($sNetVersion, ".") Local $updateReq = "" If $sVer = "" Then For $i = 1 To $asNumbersLocal1[0] If $asNumbersLocal1[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next ElseIf $sVer1 = "" Then For $i = 1 To $asNumbersLocal2[0] If $asNumbersLocal2[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next Else For $i = 1 To $asNumbersLocal[0] If $asNumbersLocal[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next EndIf If $uVer = "" And $uVer1 = "" And $uVer2 = "" Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Not installed", 3) ElseIf $updateReq = True Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Update available", 3) Else _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Installed", 3) EndIf Else ;Reload the availability columns _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Unavailable", 3) EndIf $uVer = "" $uVer1 = "" $uVer2 = "" Else If FileExists($iString[0]) Then For $w = 1 To 500 $AppKey = RegEnumKey($uRegKey, $w) If StringInStr(RegRead($uRegKey & "\" & $AppKey, "DisplayName"), $iUpdate[$z][0]) Then $uVer = RegRead($uRegKey & "\" & $AppKey, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer, 2) EndIf $AppKey1 = RegEnumKey($uRegKey2, $w) If StringInStr(RegRead($uRegKey2 & "\" & $AppKey1, "DisplayName"), $iUpdate[$z][0]) Then $uVer1 = RegRead($uRegKey2 & "\" & $AppKey1, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer1, 2) EndIf $AppKey2 = RegEnumKey($uRegKey3, $w) If StringInStr(RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayName"), $iUpdate[$z][0]) Then $uVer2 = RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer2, 2) EndIf Next Local $sVer = $uVer Local $sVer1 = $uVer1 Local $sVer2 = $uVer2 Local $sNetVersion = $iUpdate[$z][1] Local $asNumbersLocal = StringSplit($sVer, ".") Local $asNumbersLocal1 = StringSplit($sVer1, ".") Local $asNumbersLocal2 = StringSplit($sVer2, ".") Local $asNumbersNetwork = StringSplit($sNetVersion, ".") Local $updateReq = "" If $sVer = "" Then For $i = 1 To $asNumbersLocal1[0] If $asNumbersLocal1[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next ElseIf $sVer1 = "" Then For $i = 1 To $asNumbersLocal2[0] If $asNumbersLocal2[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next Else For $i = 1 To $asNumbersLocal[0] If $asNumbersLocal[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next EndIf If $uVer = "" And $uVer1 = "" And $uVer2 = "" Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Not installed", 3) ElseIf $updateReq = True Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Update available", 3) Else _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Installed", 3) EndIf Else ;Reload the availability columns _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Unavailable", 3) EndIf $uVer = "" $uVer1 = "" $uVer2 = "" EndIf EndIf Next Next EndIf If IsArray($iUpdate) Then For $z = 1 To $iUpdate[0][0] $text = _GUICtrlListView_GetItemText($listSoftware, $z - 1, 2) If $text = "" Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $iUpdate[$z][1], 1) For $v = 1 To $iInstall2[0][0] If StringInStr($iUpdate[$z][0], $iInstall2[$v][0]) Then $iString = _StringBetween($iInstall2[$v][1], '"', '"') If @error Then If FileExists($iInstall2[$v][1]) Then For $w = 1 To 500 $AppKey = RegEnumKey($uRegKey1, $w) If StringInStr(RegRead($uRegKey1 & "\" & $AppKey, "DisplayName"), $iUpdate[$z][0]) Then $uVer = RegRead($uRegKey1 & "\" & $AppKey, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer, 2) EndIf $AppKey1 = RegEnumKey($uRegKey2, $w) If StringInStr(RegRead($uRegKey2 & "\" & $AppKey1, "DisplayName"), $iUpdate[$z][0]) Then $uVer1 = RegRead($uRegKey2 & "\" & $AppKey1, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer1, 2) EndIf $AppKey2 = RegEnumKey($uRegKey3, $w) If StringInStr(RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayName"), $iUpdate[$z][0]) Then $uVer2 = RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer2, 2) EndIf Next Local $sVer = $uVer Local $sVer1 = $uVer1 Local $sVer2 = $uVer2 Local $sNetVersion = $iUpdate[$z][1] Local $asNumbersLocal = StringSplit($sVer, ".") Local $asNumbersLocal1 = StringSplit($sVer1, ".") Local $asNumbersLocal2 = StringSplit($sVer2, ".") Local $asNumbersNetwork = StringSplit($sNetVersion, ".") Local $updateReq = "" If $sVer = "" Then For $i = 1 To $asNumbersLocal1[0] If $asNumbersLocal1[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next ElseIf $sVer1 = "" Then For $i = 1 To $asNumbersLocal2[0] If $asNumbersLocal2[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next Else For $i = 1 To $asNumbersLocal[0] If $asNumbersLocal[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next EndIf If $uVer = "" And $uVer1 = "" And $uVer2 = "" Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Not installed", 3) ElseIf $updateReq = True Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Update available", 3) Else _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Installed", 3) EndIf Else ;Reload the availability columns _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Unavailable", 3) EndIf $uVer = "" $uVer1 = "" $uVer2 = "" Else If FileExists($iString[0]) Then For $w = 1 To 500 $AppKey = RegEnumKey($uRegKey1, $w) If StringInStr(RegRead($uRegKey1 & "\" & $AppKey, "DisplayName"), $iUpdate[$z][0]) Then $uVer = RegRead($uRegKey1 & "\" & $AppKey, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer, 2) EndIf $AppKey1 = RegEnumKey($uRegKey2, $w) If StringInStr(RegRead($uRegKey2 & "\" & $AppKey1, "DisplayName"), $iUpdate[$z][0]) Then $uVer1 = RegRead($uRegKey2 & "\" & $AppKey1, "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer1, 2) EndIf $AppKey2 = RegEnumKey($uRegKey3, $w) If StringInStr(RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayName"), $iUpdate[$z][0]) Then $uVer2 = RegRead($uRegKey3 & "\" & $AppKey2 & "\InstallProperties", "DisplayVersion") _GUICtrlListView_AddSubItem($listSoftware, $z - 1, $uVer2, 2) EndIf Next Local $sVer = $uVer Local $sVer1 = $uVer1 Local $sVer2 = $uVer2 Local $sNetVersion = $iUpdate[$z][1] Local $asNumbersLocal = StringSplit($sVer, ".") Local $asNumbersLocal1 = StringSplit($sVer1, ".") Local $asNumbersLocal2 = StringSplit($sVer2, ".") Local $asNumbersNetwork = StringSplit($sNetVersion, ".") Local $updateReq = "" If $sVer = "" Then For $i = 1 To $asNumbersLocal1[0] If $asNumbersLocal1[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next ElseIf $sVer1 = "" Then For $i = 1 To $asNumbersLocal2[0] If $asNumbersLocal2[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next Else For $i = 1 To $asNumbersLocal[0] If $asNumbersLocal[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next EndIf If $uVer = "" And $uVer1 = "" And $uVer2 = "" Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Not installed", 3) ElseIf $updateReq = True Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Update available", 3) Else _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Installed", 3) EndIf Else ;Reload the availability columns _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Unavailable", 3) EndIf $uVer = "" $uVer1 = "" $uVer2 = "" EndIf EndIf Next EndIf Next EndIf EndIf EndFunc ;==>_UpdateList Here is the bit you were referring too. expandcollapse popupLocal $sVer = $uVer Local $sVer1 = $uVer1 Local $sVer2 = $uVer2 Local $sNetVersion = $iUpdate[$z][1] Local $asNumbersLocal = StringSplit($sVer, ".") Local $asNumbersLocal1 = StringSplit($sVer1, ".") Local $asNumbersLocal2 = StringSplit($sVer2, ".") Local $asNumbersNetwork = StringSplit($sNetVersion, ".") Local $updateReq = "" If $sVer = "" Then For $i = 1 To $asNumbersLocal1[0] If $asNumbersLocal1[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next ElseIf $sVer1 = "" Then For $i = 1 To $asNumbersLocal2[0] If $asNumbersLocal2[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next Else For $i = 1 To $asNumbersLocal[0] If $asNumbersLocal[$i] < $asNumbersNetwork[$i] Then $updateReq = True ExitLoop EndIf Next EndIf If $uVer = "" And $uVer1 = "" And $uVer2 = "" Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Not installed", 3) ElseIf $updateReq = True Then _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Update available", 3) Else _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Installed", 3) EndIf Else ;Reload the availability columns _GUICtrlListView_AddSubItem($listSoftware, $z - 1, "Unavailable", 3) EndIf $uVer = "" $uVer1 = "" $uVer2 = "" 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