Как можно определить доступные сервера приложений на этой машине через Registry

Материал из DRKB


Прочитайте ключ под HKEY_CLASSES_ROOT\CLSID\*, просматривая его насчёт ключей, которые имеют подключ "Borland DataBroker". Эти вхождения и являются серверами приложений.

Ниже пример, который загружает имена доступных серверов приложений в Listbox:

uses Registry;

procedure TForm1.FormCreate(Sender: TObject);
var
  I: Integer;
  TempList: TStringList;
begin
  TempList := TStringList.Create;
  try
    with TRegistry.Create do
    try
      RootKey := HKEY_CLASSES_ROOT;
      if OpenKey('CLSID', False) then
        GetKeyNames(TempList);
      CloseKey;
      for I := 1 to TempList.Count - 1 do
      begin
        if KeyExists('CLSID\' + TempList[I] + '\Borland DataBroker') then
        begin
          if OpenKey('CLSID\' + TempList[I] + '\ProgID', False) then
          begin
            Listbox1.Items.Add(ReadString(''));
            CloseKey;
          end;
        end;
      end;
    finally
      Free;
    end;
  finally
    TempList.Free;
  end;
end;


Author: Nomadic
Source: http://delphiworld.narod.ru/
ID: 04322