Ich habe ein Problem beim Schreiben eines neuen Schlüssels.
Ich habe mir das Beispiel aus Delphi kopiert und versucht es auszuführen (will ich dann noch anpassen).
Wenn ich dann einen Schlüssel erstellen möchte erhalte ich folgende
Exception:
---------------------------
Benachrichtigung über Debugger-
Exception
---------------------------
Im Projekt Registry01.exe ist eine
Exception der Klasse ERegistryException aufgetreten. Meldung: 'Erzeugung von Schlüssel TestSchluessel misslungen'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
Der Code dazu sieht so aus:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegIniFile;
begin
if Length(NameofKey.Text) or Length(ValueforKey.Text) <=0 then
Showmessage('Either the key name or value is missing.')
else begin
Reg:=TRegIniFile.Create('MyApp');
try
Reg.RootKey:=HKey_Local_Machine; // Abschnitt in Registrierung
if not Reg.OpenKey(NameofKey.Text,False) then
if MessageDlg('The specified key does not exist, create it?'
,Mtinformation,[mbYes,mbNo],0)=mryes then
begin
Reg.CreateKey(NameofKey.Text);
if not Reg.OpenKey(NameofKey.Text,False) then
ShowMessage('Error in Opening Created Key')
else
Reg.WriteString('Main Section','Value1',ValueForKey.Text);
end
else
Reg.WriteString('Main Section','Value1',ValueForKey.Text);
finally
Reg.Free;
end;
end;
end;
Durch Zufall habe ich herausgefunden, dass er einen Schlüssel anlegt.
Die restlichen Daten fehlen bzw. wird in der Registry einfach "(Standard)" als Name und "(Wert nicht gesetzt)" als Wert angegeben.
Das ganze befindet sich bei HKEY_USERS -> S-1-5-21........ Es sollte aber unter HKEY_LOCAL_MACHINE angelegt werden.
Ich hoffe mir kann jemand weiterhelfen.
Ach ja und bevor die Frage gestellt wird:
Ich habe die Berechtigung um überall in der Registry Schlüssel zu erstellen.
Theorie ist, wenn jeder alles weiß aber nichts funktioniert.
Praxis ist, wenn alles funktioniert aber keiner weiß warum
Hier ist Theorie und Praxis vereint, nichts funktioniert und keiner weiß warum