Entwickler-Ecke
Sonstiges (Delphi) - Registry + Schleife
Millo - Mi 13.11.02 16:10
Titel: Registry + Schleife
Moin,
Ich versuch grad mit einer schleife (For) an den Registry Key immer eine zahl zu ändern also:
'Programm\Programmkey\000000'+IntToStr(i)
Allerdings bekomme ich immer den Fehler Format '%p' ungültig oder mt Argument nicht kompatibel. ich hab es auch schon mit reapt und allem versucht geht aber nich.
Anonymous - Mi 13.11.02 16:51
Ich sehe da keinen Fehler. Eventuell etwas mehr Code?
Ex0rzist - Mi 13.11.02 16:51
Von welchem Typ sind die Schlüssel denn?
Hast du es schon mit PChar('Programme/...'+IntToStr(i)); versucht?
Millo - Mi 13.11.02 17:27
Moin
Das mit PChar hat nicht geklappt oder hab ich was falsch gemacht?
hier ist noch der code den ich benutze
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| begin Registry := TRegistry.Create; i:= 0; for i:=1 to 10 do begin try Registry.RootKey := hkey_CURRENT_USER; if Registry.OpenKey(PChar('Software\Microsoft\Internet Account Manager\Accounts\0000000')+IntToStr(i), False) then begin itm := ListView1.Items.Add; itm.Caption := Registry.ReadString('POP3 User Name'); itm.SubItems.Add(Registry.ReadString('POP3 Server')); itm.SubItems.Add('110'); end; finally registry.Free; end; end; end; |
Delete - Mi 13.11.02 20:01
Lösung #1:
Quelltext
1:
| Registry.OpenKey('Software\Microsoft\Internet Account Manager\Accounts\0000000'+IntToStr(i), False) |
Lösung #2:
Quelltext
1:
| Registry.OpenKey(pchar('Software\Microsoft\Internet Account Manager\Accounts\0000000'+IntToStr(i)), False) |
Millo - Mi 13.11.02 21:27
Moin
Danke für die hilfe klappt jetzt alles. Hatte allerdings noch nen Fehler drin lag bei dem registr.create aufruf der musste in der For-Schleife stehen.
Delete - Do 14.11.02 08:18
Eigentlich nicht. Es reicht, die Registry
einmal zu öffnen (TRegistry.Create),
einmal den Root-Key festzulegen (HKCU), und dann in der Schleife die Schlüssel zu öffnen. Du musst nur deine try/finally/end-Konstruktion ein bisschen umstellen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| reg := TRegistry.Create; try reg.RootKey := HKEY_CURRENT_USER; for i := 1 to 10 do if(reg.OpenKey(...)) then begin // Werte lesen { ... }
// Schlüssel wieder schließen reg.CloseKey; end; finally reg.Free; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!