![]() |
Re: Registry-Probleme unter Vista
Zitat:
|
Re: Registry-Probleme unter Vista
Zitat:
|
Re: Registry-Probleme unter Vista
Zitat:
|
Re: Registry-Probleme unter Vista
Is' ja gar nicht so off-topic.
Ich kann den von Dir angesprochenen Fehler momentan nicht entdecken. Hier mal der Auszug aus der .WriteInteger-Methode:
Delphi-Quellcode:
Zeile 1: Key wird erzeugt, wenn nicht vorhanden
CreateKey(Section);
Key := GetKey(Section); if Key <> 0 then try OldKey := CurrentKey; SetCurrentKey(Key); try inherited WriteString(Ident, IntToStr(Value)); finally SetCurrentKey(OldKey); end; finally RegCloseKey(Key); end; Zeile 2: Key wird abgefragt und ... Zeile 3: ... nur dann, wenn Key existiert, wird der folgende Code ausgeführt. Ich sehe das als prinzipiell richtig an - ohne jetzt diese Klasse als Ganzes verteidigen zu wollen. |
Re: Registry-Probleme unter Vista
Ööhhmm.. OK, und wie weißt Du nun, ob es geklappt hat?
|
Re: Registry-Probleme unter Vista
Ob es geklappt hat? Och, das ist das Problem des Anwenders. *g*.
Ich war auf wido scharf ... also auf das von ihm angesprochene Problem: Zitat:
|
Re: Registry-Probleme unter Vista
Könntest Du dann mal bitte folgendes probieren?
Kleine Testapp:
Delphi-Quellcode:
Starten, Registry Editor aufmachen, nach HKCU\Software gehen und die Rechte für den Zugriff auf TestEntry entfernen (Rechtsklick, Berechtigungen, Erweitert, "Vererbbare Berechtigungen einschließen" deaktivieren, Entfernen und den Dialog mit OK bestätigen). Dann Return in der Testapp und den View im Registry Editor aktualisieren. Der Section Name "Subkey" sollte jetzt als Unterschlüssel des Rootkeys HKCU erstellt worden sein inkl. der erwarteten Werte. Wenn Du dort die Rechte auch entfernst wie zuvor, kommt die Exception, die eigentlich vorher schon hätte kommen müssen: "Failed to create key subkey.".
program Project1;
{$APPTYPE CONSOLE} uses registry; begin with TRegIniFile.Create('Software\TestEntry\Test') do begin WriteString('Subkey', 'Bla', 'Blubb'); Free; end; readln; with TRegIniFile.Create('Software\TestEntry\Test') do begin WriteString('Subkey', 'Bla', 'Blubb'); Free; end; readln; with TRegIniFile.Create('Software\TestEntry\Test') do begin WriteString('Subkey', 'Bla', 'Blubb'); Free; end; readln; end. Wäre interessant das mal zu tracen. Hab nur leider keine Sourcen, entsprechend kann ichs nicht selbst testen. |
Re: Registry-Probleme unter Vista
Hut ab. Das Szenario spielt sich so ab wie von Dir beschrieben. Danke für die Demonstration.
Das ist böse - gerade beim Löschen wird's spaßig. Okay. Die Klasse gehört auf den Müll. |
Re: Registry-Probleme unter Vista
Ihr könnt mich schizophren paranoid nennen, aber ich habe mir angewöhnt, meist Bool' sche Funktionen zu schreiben oder solche Prozeduren, die einen Var-Parameter für evtl. ErrorCodes enthalten. Das zumindest dann, wenn man später auf eine fehlerfreie Abarbeitung vertrauen muss. Das erscheint zwar im ersten Moment viel Schreibarbeit, hilft aber später evtl. enorm bei der Fehlersuche.
[edit] Krankheiten verwechselt :oops: [/edit] |
Re: Registry-Probleme unter Vista
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:01 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