artykuły

Jak odczytać listę zainstalowanych w systemie aplikacji (jak odczytać listę z apletu "Dodaj/Usun programy") ?

10:13
Wed, 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.
    Dexter