![]() |
Registry Key löschen
Hallo,
ich bin neu hier und wollte eben mal einen Registry Key löschen:
Delphi-Quellcode:
Das habe ich bis jetzt, passieren tut nichts. Wäre nett wenn ihr mir helfen könnt :).
procedure TForm1.UnlockClick(Sender: TObject);
var reg:TRegistry; begin reg:=TRegistry.Create; memo1.Lines.Text:=memo1.Lines.Text+'->Entferne Registry Schreibschutz'; try reg.RootKey:=HKEY_CURRENT_USER; reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', false); reg.DeleteKey('DisableRegistryTools'); reg.CloseKey; finally reg.Free; memo1.Lines.Text:=memo1.Lines.Text+'...Done'#13; end; |
Re: Registry Key löschen
OpenKey und DeleteKey sind sicher Funktionen. Bei OpenKey bin ich mir ganz sicher. Werte am besten aus ob die Funktionsaufrufe auch erfolgreich waren. Wenn OpenKey fehlschlägt ist es arg fahrlässig ein DeleteKey aufzurufen. Denn mit etwas Pech existiert ein key gleichen Namens auch in der Ebene in der du dich vor OpenKey befindest und dann würde dort gelöscht werden.
Zudem bin ich mir auch nicht ganz sicher ob ein OpenKey überhaupt notwendig ist oder ob man bei DeleteKey nicht gleich den vollständigen Pfad angeben kann. |
Re: Registry Key löschen
Ok habe nun meinen Quelltext etwas angepasst, funktionieren tut es trotzdem noch nicht.
Delphi-Quellcode:
procedure TForm1.UnlockClick(Sender: TObject);
var reg:TRegistry; begin reg:=TRegistry.Create; memo1.Lines.Text:=memo1.Lines.Text+'->Entferne Registry Schreibschutz'; try reg.RootKey:=HKEY_CURRENT_USER; reg.DeleteKey('Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools'); reg.CloseKey; finally reg.Free; memo1.Lines.Text:=memo1.Lines.Text+'...Done'#13; end; |
Re: Registry Key löschen
Hast du denn in der Hilfe mal geschaut ob der absolute Pfad erlaubt ist? Den Rückgabewert der Funktionen prüfst du übrigens immer noch nicht. :wink: Wenn du deine ursprüngliche Variante mal probierst und dort die Rückgabewerte auswertest, findest du vielleicht auch raus ob der Pfad nicht gefunden wird oder wirklich nur das löschen fehl schlegt. Aber wie gesagt. Dafür sind Funktionen eben Funktionen - weil sie etwas zurück geben was man auswerten kann.
|
Re: Registry Key löschen
Danke schon mal schaue mir das ganze nochmal in eurer Datenbank an.
|
Re: Registry Key löschen
da gibt es eigentlich nicht viel anzusehen:
Delphi-Quellcode:
if openkey(...) then
begin [...] end else ShowMessage('Openkey ist fehlgeschlagen'); |
Re: Registry Key löschen
Du hast bei der Pfadangabe den Backslash "\" an erster Stelle vergessen:
Delphi-Quellcode:
// Müsste jetzt funktionieren...
reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System', false); |
Re: Registry Key löschen
Funktioniert leider immer noch nicht. Zur allgemeinen Information ich habe
Delphi-Quellcode:
drin und alles mit Administrationsrechten ausgeführt.
Uses ...,Registry;
Edit: So habe das ganze nun nochmal mit einer If-Struktur überarbeitet:
Delphi-Quellcode:
Die If-Struktur ist mir noch nicht so ganz klar müsste ja noch irgendwas wie =true oder so hin aber komme damit noch nicht wirklich zurecht.
procedure TForm1.UnlockClick(Sender: TObject);
var reg:TRegistry; begin reg:=TRegistry.Create; memo1.Lines.Text:=memo1.Lines.Text+'->Entferne Registry Schreibschutz'; try reg.RootKey:=HKEY_CURRENT_USER; if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', false) then begin reg.Deletekey('DisableRegistryTools'); memo1.Lines.Text:=memo1.Lines.Text+'...Done'+#13; end finally reg.CloseKey; end; |
Re: Registry Key löschen
Welches Betriebssystem nutzt Du? Spätestens ab Vista dürften solche Eingriffe wie Du sie durchführst nicht möglich sein (Stichwort Benutzerrechte).
Teste das Ganze doch mal in einem Testschlüssel unter "\Software\Test" oder so. Wenn das Da mit dem gleichen Code klappt, weißt Du, dass es Rechteproblem ist. //edit: Den führenden Backslash hast Du immer noch nicht drin ;) |
Re: Registry Key löschen
Ok mit neuen Rechten gibt er ein Done aus. Machen tut er trotzdem nichts. (Pfad, Rechte und Backslash sind korrekt).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:45 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