Главная страница
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.025 c
1-1106561676
Zodor
2005-01-24 13:14
2005.02.06
Delphi 8 or delphi2005


3-1105039431
MNz
2005-01-06 22:23
2005.02.06
хранение DOC формата


1-1106724799
Zloy
2005-01-26 10:33
2005.02.06
Как получить список файлов из определенного каталога


6-1100992028
KarpEn
2004-11-21 02:07
2005.02.06
Как ловчее передать сложную структуру, у которой различный размер


1-1106399819
Islander
2005-01-22 16:16
2005.02.06
Как проиграть звук критической ошибки?