Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 188

•  TDictionary Custom Sort  6 241

•  Fast Watermark Sources  6 046

•  3D Designer  8 945

•  Sik Screen Capture  6 369

•  Patch Maker  6 792

•  Айболит (remote control)  6 773

•  ListBox Drag & Drop  5 648

•  Доска для игры Реверси  96 302

•  Графические эффекты  6 991

•  Рисование по маске  6 275

•  Перетаскивание изображений  5 167

•  Canvas Drawing  5 535

•  Рисование Луны  5 235

•  Поворот изображения  4 783

•  Рисование стержней  3 382

•  Paint on Shape  2 639

•  Генератор кроссвордов  3 525

•  Головоломка Paletto  2 813

•  Теорема Монжа об окружностях  3 626

•  Пазл Numbrix  2 370

•  Заборы и коммивояжеры  3 052

•  Игра HIP  2 008

•  Игра Go (Го)  1 932

•  Симулятор лифта  2 292

•  Программа укладки плитки  1 996

•  Генератор лабиринта  2 450

•  Проверка числового ввода  2 133

•  HEX View  2 467

•  Физический маятник  2 084

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Как получить список инсталлированных программ



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;




Похожие по теме исходники

Список запущенных процессов

Список установленных устройств

Модуль активации программ

Программа укладки плитки

 



Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте