Этот код вернет программы, связанные с каждым расширением.

Очевидно, вы можете изменить его для поиска конкретного расширения.

 

Code:

uses Registry;

 

procedure TForm1.Button1Click(Sender: TObject);

var

  reg: TRegistry;

  keys: TStringList;

  i: Integer;

  typename, displayname, server: string;

begin

  memo1.Clear;

  reg := TRegistry.Create;

  try

    reg.rootkey := HKEY_CLASSES_ROOT;

    if reg.OpenKey('', False) then

    begin

      keys := TStringList.Create;

      try

        reg.GetKeyNames(keys);

        reg.CloseKey;

        {memo1.lines.addstrings(keys);}

        for i := 0 to keys.Count - 1 do

        begin

          if keys[i][1] = '.' then

          begin

            {this is an extension, get its typename}

            if reg.OpenKey(keys[i], False) then

            begin

              typename := reg.ReadString('');

              reg.CloseKey;

              if typename <> '' then

              begin

                if reg.OpenKey(typename, False) then

                begin

                  displayname := reg.ReadString('');

                  reg.CloseKey;

                end;

                if reg.OpenKey(typename + '\shell\open\command', False) then

                begin

                  server := reg.ReadString('');

                  memo1.Lines.Add(Format('Extension: "%s", Typename: "%s", Displayname:"%s"' +

                                         #13#10'  Server: %s',

                                         [keys[i], typename, displayname, server]));

                  reg.CloseKey;

                end;

              end;

            end;

          end;

        end;

      finally

        keys.Free;

      end;

    end;

  finally

    reg.Free

  end;

end;

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить