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

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

•  TDictionary Custom Sort  6 822

•  Fast Watermark Sources  6 602

•  3D Designer  9 564

•  Sik Screen Capture  6 941

•  Patch Maker  7 389

•  Айболит (remote control)  7 336

•  ListBox Drag & Drop  6 194

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

•  Графические эффекты  7 508

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

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

•  Canvas Drawing  6 026

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

•  Поворот изображения  5 269

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

•  Paint on Shape  3 018

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

•  Головоломка Paletto  3 151

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

•  Пазл Numbrix  2 633

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

•  Игра HIP  2 360

•  Игра Go (Го)  2 278

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

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

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

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

•  HEX View  2 733

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

 
скрыть

  Форум  

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

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