Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Probleme mit TRegistry beim Überschreiben eines Strings (https://www.delphipraxis.net/196598-probleme-mit-tregistry-beim-ueberschreiben-eines-strings.html)

MyRealName 2. Jun 2018 20:23

Probleme mit TRegistry beim Überschreiben eines Strings
 
Hallo,

ich stelle gerade in meiner Anwendung einige Sachen von Inifile auf Registry um, da wir mittlerweile viele Kunden haben, die mit TerminalServer arbeiten.

Jetzt will ich alles unter HKEY_CURRENT_USER speichern, mit welchen loginnamen (emails) dort schon angemeldet waren (in dieser Session, deswegen current_user). Beim ersten Nutzer ging das gut, ich sehe den Eintrag in der Registry. Aber dann kommt jetzt immer ein Fehler, dass das Programm die Daten nicht setzen kann.

Hier der Code :

Code:
procedure TfLoginForm.cxmeEmailExit(Sender: TObject);
var Reg : TRegistry;
    S : String;
begin
  If cxmeEmail.ValidateEdit(False) Then begin
    If Not EmailInLookupList(UpperCase(cxmeEmail.Text)) Then
      cxmeEmail.Properties.LookupItems.Add(cxmeEmail.Text);

    Reg := TRegistry.Create(KEY_SET_VALUE);
    Reg.RootKey := HKEY_CURRENT_USER;
    If (Not Reg.KeyExists(REGISTRY_MYAPP_ROOT)) Then
      Reg.OpenKey(REGISTRY_MYAPP_ROOT, True);
    cxmeEmail.Properties.LookupItems.Delimiter := ';';
    S := cxmeEmail.Properties.LookupItems.DelimitedText;
    Reg.WriteString('LoginList', S);
    Reg.CloseKey;
    Reg.Free;
  end;
end;
---------------------------
Debugger Exception Notification
---------------------------
Project XXXX raised exception class ERegistryException with message 'Failed to set data for 'LoginList''.
---------------------------
Break Continue Help
---------------------------

Ich lasse das Programm nicht als admin laufen, sollte ja aber auch nicht bei current_user, oder ?

Danke schonmal für die Hinweise!

Uwe Raabe 2. Jun 2018 20:41

AW: Probleme mit TRegistry beim Überschreiben eines Strings
 
Klappt es, wenn du den Parameter bei TRegistry.Create weglässt?

MyRealName 2. Jun 2018 20:42

AW: Probleme mit TRegistry beim Überschreiben eines Strings
 
Nein

Edit: Lösche ich den Baum, so dass er mit

Code:
 Reg.OpenKey(REGISTRY_MYAPP_ROOT, True);
neu erstellt wird, dann schreibt er den Key. Lösche ich nur den Key, dann kommt der Fehler auch.

Uwe Raabe 2. Jun 2018 20:45

AW: Probleme mit TRegistry beim Überschreiben eines Strings
 
Oh, es liegt vermutlich an der If (Not Reg.KeyExists(REGISTRY_MYAPP_ROOT)) Then Abfrage. Das OpenKey muss immer kommen, auch wenn der Key existiert.

MyRealName 2. Jun 2018 20:59

AW: Probleme mit TRegistry beim Überschreiben eines Strings
 
Das war's. Danke

Manchmal sieht man sowas nicht :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz