Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
гость   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.048 c
6-1101386016
aret99
2004-11-25 15:33
2005.02.06
БД в интернете.


9-1099165943
Домовенок
2004-10-30 23:52
2005.02.06
[GLScene] FPSMovementManager


1-1106379779
Unknown
2005-01-22 10:42
2005.02.06
Как развернуть приложение после Application.Minimize и как вызват


4-1102795588
Relaxxx
2004-12-11 23:06
2005.02.06
нужно получить список установленых винчестеров


3-1104252945
denis24
2004-12-28 19:55
2005.02.06
group by





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский