Hola...
Lo que tienes que haces es usar arreglos de string para obtener la lista de subkeys con la función
RegGetSubkeyNames y el valor de
DisplayName usando la función
RegQueryStringValue, la misma ayuda de InnoSetup tiene ejemplos.
Código Delphi
[-]
const
UninstallKey = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';
var
Installed: TArrayOfString;
I: Integer;
AppName: string;
AppNameList: TStringList;
begin
if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, UninstallKey, Installed) then
begin
AppNameList := TStringList.Create;
AppNameList.Sorted := True;
for I := 0 to GetArrayLength(Installed) do
if RegQueryStringValue(HKEY_LOCAL_MACHINE, UninstallKey + '\' + Installed[i], 'DisplayName', AppName) and (AppName <> '') then
AppNameList.Add(AppName)
end
end;
Saludos...