Jak odczytać listę zainstalowanych w systemie aplikacji (jak odczytać listę z apletu "Dodaj/Usun programy") ?
10:13Wed, 3 January 2007 Stawiamy na formie następujące komponenty (TButton, TListBox, TLabel), powinny mieć nazwy odpowiednio: Button1, ListBox1, Label1.
Klikamy dwukrotnie na Button1 i uzupełniamy procedurę następująco:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
i:=0;
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionUninstall',False);
Reg.GetKeyNames(ListBox1.Items);
Reg.CloseKey;
For i:=0 To ListBox1.Items.Count-1 Do
Begin
Application.ProcessMessages;
Reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionUninstall'+ListBox1.Items.Strings[i],False);
If Reg.ValueExists('QuietDisplayName') Then
Begin
ListBox1.Items.Strings[i]:=Reg.ReadString('QuietDisplayName');
Reg.CloseKey;
end;
If Reg.ValueExists('DisplayName') Then
Begin
ListBox1.Items.Strings[i]:=Reg.ReadString('DisplayName');
Reg.CloseKey;
end;
end;
end;
Następnie klikamy dwukrotnie na listę (ListBox1) i uzupełniamy procedurę następująco:
procedure TForm1.ListBox1Click(Sender: TObject);
begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionUninstall'+ListBox1.Items.Strings[ListBox1.ItemIndex],False);
If Reg.ValueExists('QuietUninstallString') Then
Begin
Label1.caption:=Reg.ReadString('QuietUninstallString');
Reg.CloseKey;
end;
If Reg.ValueExists('UninstallString') Then
Begin
Label1.caption:=Reg.ReadString('UninstallString');
Reg.CloseKey;
end;
Reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionUninstall'+ListBox1.Items.Strings[ListBox1.ItemIndex],False);
If (not Reg.ValueExists('QuietUninstallString')) and (not Reg.ValueExists('UninstallString')) Then
Label1.Caption:='<Brak uninstalatora!>';
Reg.CloseKey;
end;
To wszystko! Po kliknięciu na Button1 program załaduje nam listę zainstalowanych w systemie aplikacji. Ścieżkę do deinstalatora danej aplikacji możemy uzyskać poprzez kliknięcie na jej pozycję w ListBox (ścieżka wyświetli się w komponencie Label).
Póki co brak pytań w FAQ.Skomentuj
Aby zamieścić komentarz, proszę włączyć JavaScript - niestety roboty spamujące dają mi niezmiernie popalić.
Komentarze czytelników
Nie ma jeszcze żadnych komentarzy.