Zitat von
wido:
Hast Du Dir meinen Screenshot mal angesehen? Wenn TRegIniFile den Key, den Du definierst, nicht öffnen kann, schreibts die Daten einfach irgendwo hin. Will gar nicht wissen was passiert, wenn Du Werte mal löscht. Ob es dann auch einfach irgendwo rumdeleted? Allein deswegen würd ich meine
Unit schnellstens überarbeiten. Denn offensichtlich tut sie Sachen, von denen Du gar nichts weißt
.
Ich hab mir das angesehen mit Reg Monitor. Aber keine Angst, so ist es nicht. Hier zwei Beispiele aus der TRegIniFile:
Delphi-Quellcode:
constructor TRegIniFile.Create(const FileName: string; AAccess: LongWord);
begin
inherited Create(AAccess);
FFilename := FileName;
OpenKey(FileName, True);
end;
procedure TRegIniFile.WriteString(const Section, Ident, Value: String);
var
Key, OldKey: HKEY;
begin
CreateKey(Section);
Key := GetKey(Section);
if Key <> 0 then
try
OldKey := CurrentKey;
SetCurrentKey(Key);
try
inherited WriteString(Ident, Value);
finally
SetCurrentKey(OldKey);
end;
finally
RegCloseKey(Key);
end;
end;
Würdest du es besser machen? Ich mache ja keinem einen Vorwurf, aber das ist das was ich oben meinte. Jeder kann sich den Quellcode ansehen. Die
Unit schreibt also nicht wahllos irgendwo etwas hin, sondern da wo es soll. Ich weiß nicht wo die Menge an Zugriffen kommt, aber garantiert nicht von TRegIniFile. Eventuell von
API.