#include <Array.au3>
Local $aPath = _GetPathProg()
_ArrayDisplay($aPath)
Func _GetPathProg()
Local $all_key[3]
$all_key[0] = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
$all_key[1] = "HKEY_LOCAL_MACHINE64\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
$all_key[2] = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall'
Local $aSA[1][2], $AppKey_all, $n = 0, $X = 1, $rn, $il
For $i = 0 To 2
Local $a = 1
While 1
$AppKey_all = RegEnumKey($all_key[$i], $a)
If Not $AppKey_all Then ExitLoop
$rn = StringStripWS(StringReplace(RegRead($all_key[$i] & "\" & $AppKey_all, "DisplayName"), " (remove only)", ""), 3)
$il = StringStripWS(RegRead($all_key[$i] & "\" & $AppKey_all, "InstallLocation"), 3)
If $rn <> '' And $il <> '' Then
ReDim $aSA[$X][2]
$aSA[$n][0] = $rn
If StringRight($il, 1) = '\' Then $il = StringTrimRight($il, 1)
$aSA[$n][1] = StringReplace($il, '"', '')
$n += 1
$X += 1
EndIf
$a += 1
WEnd
Next
Return $aSA
EndFunc ;==>_GetPathProg