![]() |
Re: Registry Key löschen
Sicher gibt er "Done" aus, da Du ja den Rückgabewert von DeleteKey nicht auswertest.
|
Re: Registry Key löschen
Ok aber was genau bringt mir das? Ich weiß ja das es nicht funktioniert. Und falls ich das ganze versuchen soll muss ich das mit einer Boolean Variable machen, richtig?
|
Re: Registry Key löschen
Du hast ja den slash immer noch nicht gesetzt:
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; 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
Der ist schon gesetzt keine Sorge. Daran liegt es nicht.
|
Re: Registry Key löschen
Tritt das Problem bei jedem beliebigen Schlüssel auf oder nur bei dem von Dir angegebenen?
|
Re: Registry Key löschen
Zitat:
Delphi-Quellcode:
begin
if reg.Deletekey('DisableRegistryTools') then memo1.Lines.Text:=memo1.Lines.Text+'...Done'+#13; end |
Re: Registry Key löschen
Habe das mal eingefügt,sagt nun immer noch "Done", passieren tut weiterhin gar nichts.
Nochmal mein Quelltext:
Delphi-Quellcode:
Bei einem anderen Schlüssel funktioniert dieser Text ebenfalls nicht.
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 if reg.Deletekey('DisableRegistryTools') then memo1.Lines.Text:=memo1.Lines.Text+'...Done'+#13 else memo1.Lines.Text:=memo1.Lines.Text+'...Fehler!'+#13; end else memo1.Lines.Text:=memo1.Lines.Text+'...Fehler!'+#13; finally reg.CloseKey; end; |
Re: Registry Key löschen
Mach die Fehlerbehandlung doch endlich mal gescheit:
Delphi-Quellcode:
Dann weißt du auch, warum es fehl schlägt.
else memo1.Lines.Text:=memo1.Lines.Text+SysErrorMessage(GetLastError);
|
Re: Registry Key löschen
@Luckie: Das könnte aber so schief gehen. Denn die Abfrage von memo1.Lines.Text nutzt auch Apifunktionen welche eventuell den LastError setzen.
Was mir aber schon im ersten Beitrag aufgefallen ist. Warum wird der gesamte Text des Memos abgefragt um dann das abgefragte zu erweitern und komplett zu zuweisen. Sinnvoller wäre hier doch die Verwendung von
Delphi-Quellcode:
memo1.lines.add(Text_to_add);
|
Re: Registry Key löschen
Hallo DarkProtector,
kann es sein, dass DisableRegistryTools garkein Key ist, sonder ein Wert in der Registry. Denn dann musst Du ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 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