I have now added a second array
array 1 gives 2 results
array 2 gives 2 results
between the 2 I have the 3 required, I just need to merge the 2, or add a section to one, thia is what I have up to now
#include <Array.au3>
Global $sUninstallKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
Global $sValName = "UninstallString"
Global $sName = "DisplayName"
; Get array of all "UninstallString" values
$aUninstallKeys = _RegSearch($sUninstallKey, $sValName, 2, True) ; 2 = Match on Value Names only, True = return array
$aUninstallKeys2 = _RegSearch($sUninstallKey, $sName, 2, True) ; 2 = Match on Value Names only, True = return array
; Create 2D array for data
Global $aUninstallStrings[UBound($aUninstallKeys)][2] = [[$aUninstallKeys[0], ""]]
Global $aUninstallStrings2[UBound($aUninstallKeys2)][3] = [[$aUninstallKeys2[0], ""]]
; Populate 2D array with value location and data
For $n = 3 To $aUninstallKeys[0]
$aUninstallStrings[$n][0] = $aUninstallKeys[$n]
$aUninstallStrings[$n][1] = RegRead(StringTrimRight($aUninstallStrings[$n][0], StringLen($sValName)), $sValName)
$aUninstallStrings2[$n][2] = RegRead(StringTrimRight($aUninstallStrings2[$n][0], StringLen($sName)), $sName)
Next
for $n = 3 To $aUninstallKeys2[0]
$aUninstallStrings2[$n][0] = $aUninstallKeys2[$n]
$aUninstallStrings2[$n][1] = RegRead(StringTrimRight($aUninstallStrings2[$n][0], StringLen($sName)), $sName)
Next
; Display results
_ArrayDisplay($aUninstallStrings)
_ArrayDisplay($aUninstallStrings2)