Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Registry Key löschen (https://www.delphipraxis.net/150515-registry-key-loeschen.html)

DeddyH 19. Apr 2010 18:56

Re: Registry Key löschen
 
Sicher gibt er "Done" aus, da Du ja den Rückgabewert von DeleteKey nicht auswertest.

DarkProtector 19. Apr 2010 19:03

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?

Teekeks 19. Apr 2010 20:45

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;

DarkProtector 19. Apr 2010 20:49

Re: Registry Key löschen
 
Der ist schon gesetzt keine Sorge. Daran liegt es nicht.

Rakshasa 19. Apr 2010 20:51

Re: Registry Key löschen
 
Tritt das Problem bei jedem beliebigen Schlüssel auf oder nur bei dem von Dir angegebenen?

Teekeks 19. Apr 2010 20:51

Re: Registry Key löschen
 
Zitat:

Zitat von DarkProtector
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?

falsch:
Delphi-Quellcode:
    begin
    if reg.Deletekey('DisableRegistryTools') then
      memo1.Lines.Text:=memo1.Lines.Text+'...Done'+#13;
    end

DarkProtector 19. Apr 2010 20:57

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:
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;
Bei einem anderen Schlüssel funktioniert dieser Text ebenfalls nicht.

Luckie 19. Apr 2010 21:26

Re: Registry Key löschen
 
Mach die Fehlerbehandlung doch endlich mal gescheit:
Delphi-Quellcode:
else memo1.Lines.Text:=memo1.Lines.Text+SysErrorMessage(GetLastError);
Dann weißt du auch, warum es fehl schlägt.

SirThornberry 19. Apr 2010 21:37

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);

RWarnecke 19. Apr 2010 21:42

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 DeleteValue nehmen statt DeleteKey.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:25 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz