Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: CL | DM;

Вниз

реестр   Найти похожие ветки 

 
гость   (2005-01-22 12:27) [0]

Как вывести список всех инсталлированных программ? можно их деинсталлировать средствами delphi


 
Knight ©   (2005-01-22 12:33) [1]

Считывай из
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Имя проги - DisplayName...
Там же - UninstallString


 
гость   (2005-01-22 12:39) [2]

Ну это понятно. А как считать все DisplayName и UninstallString?


 
Vasya.ru ©   (2005-01-22 13:21) [3]

в цикле, очевидно, можно еще рекурсией :)


 
begin...end ©   (2005-01-22 13:25) [4]

> [2] гость   (22.01.05 12:39)

TRegistry.[ReadSections, ReadString]


 
гость   (2005-01-22 14:33) [5]

Нашел исходник ну чего-то не разберусь.
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;


 
Knight ©   (2005-01-22 15:08) [6]

Ты случайно не тот который "программист"? %)



Страницы: 1 вся ветка

Текущий архив: 2005.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
1-1105967375
tolstiak
2005-01-17 16:09
2005.02.06
В TEdit - одни цифры и ОДНА запятая?


1-1106652576
vint45
2005-01-25 14:29
2005.02.06
Динамические массивы


1-1106418295
MadGhost
2005-01-22 21:24
2005.02.06
Как динамически создать на форме TLabel TEdit и другие компоненты


1-1106428527
profesoralex
2005-01-23 00:15
2005.02.06
Kak mozhno na odnoy paneli uvidet papki VMESTE s failami


14-1105961859
Newbie_In_DB
2005-01-17 14:37
2005.02.06
Региональные настройки