Entwickler-Ecke

Dateizugriff - Registry: Liste von Unterschlüsseln -> ListBox


JayK - Do 23.06.05 15:33
Titel: Registry: Liste von Unterschlüsseln -> ListBox
Hallo,

wie kann ich (möglichst unkompliziert) zu einem beliebigen Schlüssel oder HKEY die Unterschlüssel auf der 1. Ebene* in einer ListBox anzeigen lassen?
Ich bitte auch um Code-Beispiele.

Schonmal Danke im vorraus,
JayK

*ich meine folgendes: Ich habe HKEY_CLASSES_ROOT am Wickel. Dieser hat einen Unterschlüssel .pas. Dieser wiederum hat noch einen Unterschlüssel Shell. Wenn ich jetzt den Inhalt von HKEY_CLASSES_ROOT in die ListBox schreiben möchte, soll .pas darin erscheinen, Shell darunter jedoch nicht.


StefanH - Do 23.06.05 16:23

geht TRegistry.GetKeyNames(Strings: TStrings); nicht?


JayK - Do 23.06.05 16:47

user profile iconStefanH hat folgendes geschrieben:
geht TRegistry.GetKeyNames(Strings: TStrings); nicht?

Denke schon, dass es gehen müsste, tut es jedoch nicht. Ich möchte in meinem Fall die Unteerschlüssel von HKEY_CLASSES_ROOT auflisten lassen.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
FileTypeList: TListBox;

procedure TForm1.bLoadClick (Sender: TObject );
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  try
    with reg do
      begin
      RootKey := HKEY_CLASSES_ROOT;
      GetKeyNames(FileTypeList.Items);
      end;
   finally
     reg.Free;
   end;
end;


StefanH - Do 23.06.05 16:51

bau noch ein OpenKey('', false); ein... dann gehts :P


JayK - Do 23.06.05 19:30

user profile iconStefanH hat folgendes geschrieben:
bau noch ein OpenKey('', false); ein... dann gehts :P

Die bescheuerte Runtime-Exception Box hat folgendes geschrieben:
Project project 1 raised exception class 'External: SISSEGV'.
:autsch: :evil: :motz: Kann denn nicht auch nur einmal etwas funktionieren hier?!!
HINWEIS: Dieses Gefluche gilt nicht irgendwelchen Usern des Delphi-Forums oder anderen humanoiden Lebewesen. :)


StefanH - Do 23.06.05 19:33

hm.. bei mir geht das:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.bLoadClick (Sender: TObject );
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  try
    with reg do
      begin
      RootKey := HKEY_CLASSES_ROOT;
      OpenKey('', false);
      GetKeyNames(FileTypeList.Items);
      end;
   finally
     reg.Free;
   end;
end;


:?!?:


JayK - Do 23.06.05 19:36

genau so hab ich es da stehen... :nixweiss: :?!?: