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.. ? =(