Friday, July 20, 2007

procedure TForm1.Button1Click(Sender: TObject);
const
UNINST_PATH = 'Software\Microsoft\Windows\CurrentVersion\Uninstall';
var
Reg : TRegistry;
SubKey: TSTringList;
ListItem: TListItem;
I : Integer;
sDisplayName, sUninstallString : String;
begin
with ListView1 do begin
Columns.Add;
Columns.Add;
Columns[0].Caption := 'Jméno';
Columns[1].Caption := 'Odinstalační řetězec';
Columns[0].Width := 200;
Columns[1].Width := 300;
end;
Reg := TRegistry.Create;
try
With ListView1.Items do
try
BeginUpdate;
Clear;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKeyReadOnly(UNINST_PATH) then begin
SubKey := TStringList.Create;
try
Reg.GetKeyNames(SubKey);
Reg.CloseKey;
for i := 0 to subKey.Count - 1 do
if Reg.OpenKeyReadOnly(Format('%s\%s', [UNINST_PATH, SubKey[i]]))
then begin
try
sDisplayName := Reg.ReadString('DisplayName');
sUninstallString := Reg.ReadString('UninstallString');
if (sDisplayName) <> '' then begin
ListItem := Add;
ListItem.Caption := sDisplayName;

Labels: