Главная страница
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.059 c
6-1100955130
xkiller
2004-11-20 15:52
2005.02.06
Можно ли написать свой p2p-клиент, например сети eDonkey?


1-1106561840
pavel_guzhanov
2005-01-24 13:17
2005.02.06
Не освобождается память при завершении потока


14-1105696379
uny
2005-01-14 12:52
2005.02.06
плоттер hp deskjet 450c - не хочет печатать..


3-1105217976
TechnoDreamer
2005-01-08 23:59
2005.02.06
Сложный поиск (ADO)


6-1100771473
MegaVolt
2004-11-18 12:51
2005.02.06
Какой порт отвечает за работу с расшаренными ресурсами.