It's easier (and, generally, more meaningful) to just grab the "DisplayName" string from each subkey.

 Code:
$ = SetOption("NoMacrosInStrings","ON")
$ = SetOption("NoVarsInStrings","ON")
$ = SetOption("WrapAtEOL","ON")
BREAK ON

$regkey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
$array = arrayenumkey($regkey)

for each $key in $array
    $displayname = readvalue($regkey+"\"+$key,"DisplayName")
    if $displayname <> ""
       $displayname + @CRLF
    endif
next