Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Как получить список инсталлированных программ

Автор: http://www.swissdelphicenter.ch

uses
  Registry;

procedure TForm1.Button1Click(Sender: TObject);
const
  UNINST_PATH = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';
var
  Reg: TRegistry;
  SubKeys: TStringList;
  ListItem: TlistItem;
  i: integer;
  sDisplayName, sUninstallString: string;
begin
  {
    ListView1.ViewStyle := vsReport;
    ListView1.Columns.add;
    ListView1.Columns.add;
    ListView1.Columns[0].caption := 'DisplayName';
    ListView1.Columns[1].caption := 'UninstallString';
    ListView1.Columns[0].Width := 300;
    ListView1.Columns[1].Width := 300;
   }
  Reg := TRegistry.Create;
  with Reg do
  try
    with ListView1.Items do
    try
      BeginUpdate;
      Clear;
      RootKey := HKEY_LOCAL_MACHINE;
      if OpenKeyReadOnly(UNINST_PATH) then
      begin
        SubKeys := TStringList.Create;
        try
          GetKeyNames(SubKeys);
          CloseKey;
          for i := 0 to subKeys.Count - 1 do
            if OpenKeyReadOnly(Format('%s\%s', [UNINST_PATH, SubKeys[i]])) then
            try
              sDisplayName := ReadString('DisplayName');
              sUninstallString := ReadString('UninstallString');
              if sDisplayName <> '' then
              begin
                ListItem := Add;
                ListItem.Caption := sDisplayName;
                ListItem.subitems.Add(sUninstallString);
              end;
            finally
              CloseKey;
            end;
        finally
          SubKeys.Free;
        end;
      end;
    finally
      ListView1.AlphaSort;
      EndUpdate;
    end;
  finally
    CloseKey;
    Free;
  end;
end;
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay