⤷ Show list of installed programs

The list of installed programs you can find in registry in HKEY_LOCAL_MACHINE using Software\Microsoft\Windows\CurrentVersion\Uninstall path. We will display programs, which contains DispalayName parameter.

uses Registry;
...
procedure TForm1.Button1Click(Sender: TObject);
var
  MyList: TStringList;
  MyRegistry: TRegistry;
  i: Integer;
  Str: string;
begin
  MyRegistry:=TRegistry.Create;
  MyList:=TStringList.Create;
  with MyRegistry do
  begin
    RootKey:=HKEY_LOCAL_MACHINE;
    if OpenKey(
      'Software\Microsoft\Windows\CurrentVersion\Uninstall', 
      False)=True then GetKeyNames(MyList);
    CloseKey;

    for i:=0 to MyList.Count-1 do
    begin
      RootKey:=HKEY_LOCAL_MACHINE;
      OpenKey(
        'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+
        MyList[i], 
        False);
      Str:=ReadString('DisplayName');
      if Str<>'' then
        Memo1.Lines.Add(ReadString('DisplayName'));
      CloseKey;
    end;
  end; 
end;
More for developers