Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.024 Beiträge
 
Delphi 12 Athens
 
#5

AW: Schreiben mit TRegistry funktioniert nicht

  Alt 30. Okt 2020, 10:46
Aus der Hilfe für TRegistry.CreateKey:

Zitat:
Mit CreateKey wird ein neuer Schlüssel in die Registrierung eingefügt. Key gibt den Namen des neuen Schlüssels an. Key kann ein absoluter oder ein relativer Schlüsselname sein. Ein absoluter Schlüssel beginnt mit einem Backslash und setzt direkt auf den Hauptschlüssel auf. Ein relativer Schlüssel ist ein Unterschlüssel des aktuellen.
Delphi-Quellcode:
    if not reg.OpenKey(rootkey, True)
    then raise EInvalidOpException.Create('Uninstall registry key not found.');

    key := rootkey + '\' + AGuid;

    if not reg.CreateKey(key)
    then raise EInvalidOpException.Create('Cannot create uninstall registry key.');
Nach dem OpenKey ist der aktuelle Schlüssel auf rootkey gesetzt. Da rootkey aber ein relativer Schlüssel ist, wird bei dem CreateKey der doppelte rootkey-Schlüssel verwendet.

Richtig wäre:
Delphi-Quellcode:
    if not reg.OpenKey(rootkey, True)
    then raise EInvalidOpException.Create('Uninstall registry key not found.');

    key := AGuid;

    if not reg.CreateKey(key)
    then raise EInvalidOpException.Create('Cannot create uninstall registry key.');
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat