Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#38

AW: TRegistry Unterschied zwischen Delphi 7 und 2009

  Alt 6. Mai 2015, 21:10
Eine kleine Bitte. Teste mal die drei Zeilen
Delphi-Quellcode:
  with TRegIniFile.Create('Software\Vendor\Productname') do try
    WriteString('', 'Test', 'Testwert');
  finally Free end;
Hier übernimmt im Grunde Delphi das Drumherum und öffnet die Keys. Ist es eine Frage der Rechte, dürfte der Dreizeiler nichts in den Pfad schreiben. Denn ob du keine Rechte bekommst oder der Dreizeiler, ist ja das Gleiche. Schreibt er hingegen etwas in den Pfad rein, weißt du, dass der Fehler im Code liegt.


Bei der Gelegenheit würde ich gerne die Frage stellen ob du evtl. schon vorher, also vor den Zeilen einmal auf die Registry zugegriffen hast? Das ist nicht unwichtig.

Ich kann mich nicht mehr genau dran erinnern woran es lag, ich glaube es lag an fehlendem CloseKey, da hatte ich ein ähnliches Problem. Damals habe ich irgendwo in der Hilfe gelesen (das finde ich jetzt nicht mehr), dass es sehr wichtig ist, dass der Schlüssel wieder geschlossen wird, weil sonst... irgendwas nicht richtig funktionieren wird.

Wie gesagt, ich finde die Zeilen jetzt nicht wieder. Aber wichtig für dich ist - schließt du auch immer schön den Schlüssel wieder?


EDIT:

Der Ablauf sollte in etwas so aussehen:

Delphi-Quellcode:
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    if Reg.OpenKey('\Software\Usw', True) then
    begin
      Reg.WriteString('Bla','Blabla');
      Reg.CloseKey; //wird gerne vergessen
    end;
  finally
    Reg.Free;
  end;
end;

Geändert von Popov ( 6. Mai 2015 um 21:20 Uhr)
  Mit Zitat antworten Zitat