![]() |
TRegIniFile vs. TRegistry unter Vista...
Ich muss was unter HKLM schreiben.
Mach ich das mit
Delphi-Quellcode:
lauft's problemlos.
with TRegistry.Create do
try RootKey:=HKEY_LOCAL_MACHINE; Access:=KEY_READ or KEY_WRITE; WriteString(ediSection.Text, ediValueName.Text, ediWriteContent.Text); finally Free; end; Nehm ich statt TRegistry TRegIniFile kracht's. Exception "Erzeugung von Schlüssel \Software\Darwin\ misslungen" ReadString anstelle von WriteString geht. Und unter WinXP läuft's auch. Starte ich die Anwendung explizit mit Admin-rechten geht's doch. Hilfe?!? (Das ganze unter D2006 in einer App mit asInvoker-Manifest) |
Re: TRegIniFile vs. TRegistry unter Vista...
Bist Du sicher, dass der Key mit TRegistry auch angelegt wird?
Eigentlich wird die Registry erst geschrieben mit TRegistry.Close Unter Vista hat nur noch ein Admin die Rechte, in HKLM zu schreiben. Lesen darf (glaube ich) jeder aus HKLM. |
Re: TRegIniFile vs. TRegistry unter Vista...
Zitat:
Unglaublich aber der Fehler liegt in den Borland-Sourcen. In TRegIniFile.WriteString wird CreateKey aufgerufen und dort steht
Delphi-Quellcode:
und Kay_All_Access hat diese Sache mit Create_Link dabei, und die geht meistns nicht.
Result := RegCreateKeyEx(GetBaseKey(Relative), PChar(S), 0, nil,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, nil, TempKey, @Disposition) = ERROR_SUCCESS; Schwachsinn, nicht mal bei Delphi2007 haben sie das ausgebessert, obwohl die Version Vista-Kompatibel sein sollte. |
Re: TRegIniFile vs. TRegistry unter Vista...
Dann verwende doch einfach TRegistry und sei glücklich ;-)
Dort geht es ja. Nur so am Rande: das CloseKey solltest Du trotzdem noch dazuschreiben. |
Re: TRegIniFile vs. TRegistry unter Vista...
Zitat:
|
Re: TRegIniFile vs. TRegistry unter Vista...
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz