Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Liste der Exe-Pfade aller installierten Programme

  Alt 4. Jan 2013, 10:17

Nein. Abgesehen davon, dass dieser Code voller Fehler ist, liefert er nur die Uninstall-Displaynamen, was ich ja in meiner obigen Definition ausgeschlossen habe. Hier ist der soweit entwanzte Code, der das nicht brauchbare Ergebnis liefert:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
const
  REGKEYAPPS = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\';
var
  reg: TRegistry;
  List1: TStringList;
  List2: TStringList;
  j, n: Integer;
begin
  reg := TRegistry.Create;
  List1 := TStringList.Create;
  List2 := TStringList.Create;

  { Load all the subkeys }
  with reg do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    Access := KEY_READ; // WICHTIG WEGEN UAC !
    OpenKey(REGKEYAPPS, false);
    GetKeyNames(List1);
  end;
  { Load all the Value Names }
  for j := 0 to List1.Count - 1 do
  begin
    reg.OpenKey(REGKEYAPPS + '' + List1.Strings[j], false);
    reg.GetValueNames(List2);

    { We will show only if there is 'DisplayName' }
    n := List2.IndexOf('DisplayName');
    if (n <> -1) and (List2.IndexOf('UninstallString') <> -1) then
    begin
      memoPrograms.Lines.Add((reg.ReadString(List2.Strings[n])));
    end;
  end;
  List1.Free;
  List2.Free;
  reg.CloseKey;
  reg.Destroy;
end;
  Mit Zitat antworten Zitat