Mega Code Archive

 
Categories / Delphi / Examples
 

Get the list of the installed softwares on a computer

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;