Hallo..
Ich hoffe das ist hier der richtige Bereich dafür.. hab nichts anderes gefunden
Ich habe vor ein kleine Programm zu machen..
es soll eigentlich die Liste der Programme/Spiele aus der Softwareliste (unter Systemsteuerung) auflisten.
Ich weis das die Einträge in folgendem Pfad sind:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Daraus hab ich dann folgendes geschrieben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| 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); ergebnis:= reg.ReadString( 'DisplayName' ); reg.Free; edit1.text:=ergebnis; end; |
Allerdings, ließt er hier ja aus einem bestimmten Eintrag die Information "DisplayName" ... Da ich aber die Einträge von anderen nicht alle kenne, sind diese ja unbekannt und ich will, dass er im \Uninstall\ Verzeichnis die Einträge durch geht und dort die "DisplayName" Einträge rausfischt.
geht das irgendwie? ich habe bisher nur diesen Weg:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| 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; |
Aber hier, ließt er nur den Namen der Einträge im \Uninstall\ und da kommt bei manchen dingen viel Müll raus..
Also gibt es irgendwie eine alternative? Wäre schön wenn ihr mir helfen könntet, also danke im vorraus =)!