Entwickler-Ecke

Dateizugriff - Dateibeschreibung aus der Registry auslesen


galagher - Di 01.05.07 15:56
Titel: Dateibeschreibung aus der Registry auslesen
Hallo!

Kann mit bitte jemand sagen, warum der folgende Code nicht funktioniert? Result müsste "Textdatei" sein, es wird aber nur ein leerer String zurückgegeben.
Der Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TXT-Datei existiert!

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create(KEY_READ);

  Reg.Rootkey := HKEY_LOCAL_MACHINE;

  if Reg.OpenKey('SOFTWARE\Classes', False) = False then Close; //hier wird das Programm NICHT beendet!
  //also ist hier nicht der Fehler!
  Result := Reg.ReadString('TXT-Datei');
  Reg.CloseKey;
  Reg.Free;
end;


galagher - Di 01.05.07 16:51

Vergesst es - da sind sowieso nicht alle Dateibeschreibungen drin. Also bleibt mir nichts anderes übrig, als eine Dummydatei zu erzeugen und diese auf die Dateibeschreibung zu prüfen.


JayEff - Di 01.05.07 18:59

Wieder mal der Vollständigkeit halber: Die Funktion Reg.OpenKey(...) liefert einen boolschen Ausdruck zurück, wenn du nun noch ein = false dahinter setzt, bekommst du ja nur noch einen boolschen Ausdruck. Genauso gut könntest du schreiben: if (((a = true) = true) = true) then ...
Was ich damit sagen will: Man würde die Abfrage if Reg.OpenKey(xy) = false then mit if not Reg.OpenKey(xy) then ersetzen ;)
Ist einfach eine Sache des Programmierstils.