Thema: Softwareliste

Einzelnen Beitrag anzeigen

monty.ms

Registriert seit: 19. Nov 2004
76 Beiträge
 
#5

Re: Softwareliste

  Alt 6. Feb 2005, 17:08
hab ich schon 4 mal versucht.. geht nicht. Kann man die irgendwo laden oder gibt es eine seite wo diese nochmal aufgefasst sind? oder kann mir einer bitte konkret helfen?

so.. hab jetzt was gefunden:

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var reg:TRegistry; ergebnis:string;
begin
  reg:=TRegistry.Create;
  reg.RootKey:=HKEY_LOCAL_MACHINE;
  reg.OpenKey( '\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{061126FC-5424-41BA-8D05-3C30C0F153C7}', False); //Schlüssel öffnen
  ergebnis:= reg.ReadString( 'DisplayName' ); //Wert auslesen
  reg.Free; //Freigeben
  edit1.text:=ergebnis;
end;
Da komm ich auch zu einem guten ergebnis, das mir der Name von dem Programm angezeigt wird.

Aber mein Vorhaben ist ja, eine Liste zu erstellen, von ALLEN Einträgen.. und da ich ja auf fremden pcs nicht die Einträge kenne, müsste es doch eine möglichkeit geben, das gesamten /Uninstall Verzeichnis nach "DisplayName" zu durchwühlen und da die Werte lesen?!

Ich hätte mir vorgestellt, dass man den Eintrag (z.b. {061126FC-5424-41BA-8D05-3C30C0F153C7} ) mit irgend was zu ersetzen was für alle gilt, alá "*" wie bei *.txt oder so..


edit: ich hab jetzt das folgender maßen gemacht!

Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
  reg : TRegistry;
begin
  reg := TRegistry.Create(KEY_READ);
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    if reg.OpenKey('Software\Microsoft\Windows\Currentversion\Uninstall', FALSE) then
    begin
       reg.GetKeyNames(Listbox2.Items);
    end
    else
      RaiselastOSError();
  finally
    reg.Free;
  end;
end;

dadurch komm ich aber leider nur an die namen der einzelnen einträge ran.. wie komm ich jetzt noch an die "DisplayName" ran.. ? =(
  Mit Zitat antworten Zitat