AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Registry Key löschen

Ein Thema von Tommy1988 · begonnen am 18. Aug 2007 · letzter Beitrag vom 19. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
Tommy1988
(Gast)

n/a Beiträge
 
#1

Registry Key löschen

  Alt 18. Aug 2007, 21:29
Folgendes habe ich geschrieben:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
registry : TRegistry;
begin
registry := TRegistry.Create;
 try
   registry.RootKey := HKEY_CURRENT_USER;
    if registry.OpenKey('\Software\Microsoft\Windows\'
      +'CurrentVersion\Explorer\TrayNotify', True) then
      begin
        registry.DeleteKey('IconStreams');
        registry.DeleteKey('PastIcon-Streams');
        registry.CloseKey;
      end else
        begin
         ShowMessage('Fehler, Schlüssel existieren nicht');
        end;
   finally
     registry.Free;
   end;
end;
Normalerweise sollte dadurch die Objektliste (die ganzen Tray's) gelöscht werden..
Also die History davon, nicht direkt die neben der Uhr.

Wieso klappt das mit dem löschen nicht?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Registry Key löschen

  Alt 18. Aug 2007, 21:32
Hi,

der Parameter von OpenKey() darf am Anfang keinen Backslash haben, soweit ich weiß. Entferne diesen daher mal.
Geht das dann immer noch nicht, schau mal, was SysErrorMessage(GetLastError) zurückliefert.
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#3

Re: Registry Key löschen

  Alt 18. Aug 2007, 21:36
Erm. also das ist sehr komisch. Backslash weg, geht noch immer net.

Fehlermeldung von SysErrorMessage(GetLastError):

"Zugriff verweigert"

Ich glaube es ist so, dass ich geöffnete Keys nicht löschen kann.

Aber wie funktioniert es denn dann mit der Windows eigenen Funktion ?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Registry Key löschen

  Alt 18. Aug 2007, 21:48
Zitat von Tommy1988:
Ich glaube es ist so, dass ich geöffnete Keys nicht löschen kann.

Aber wie funktioniert es denn dann mit der Windows eigenen Funktion ?
In dem Windows ihn vorher nicht öffnet?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Registry Key löschen

  Alt 18. Aug 2007, 22:23
was bezweckst du denn mit diesem vorhaben und welche windows eigene funktion meinst du?
  Mit Zitat antworten Zitat
Benutzerbild von Rakshasa
Rakshasa

Registriert seit: 1. Nov 2003
182 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Registry Key löschen

  Alt 18. Aug 2007, 23:01
Also das mit dem Backslash ist richtig so, hast Du mal mit KeyExists() geschaut, ob er die Schlüssel überhaupt findet? Ansonsten würde ich auf ein Berechtigungs-Problem tippen. Müsstest mal posten, welche Windows-Version Du hast, ob der USer Admin ist usw.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Registry Key löschen

  Alt 18. Aug 2007, 23:07
In dem Schlüssel hat man eigentlich auch als beschränkter Benutzer Lese- und Schreibrechte. Man sollte ihn also auch löschen können.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#8

Re: Registry Key löschen

  Alt 18. Aug 2007, 23:25
TRegistry is berühmt für das Problem (habe BDS 2006 im Moment nicht mehr hier, daher kann ich leider nichtmal sagen ob es da behoben worden war), daß es KEY_ALL_ACCESS anfordert. Dumme Sache das. Wenn ich nur lesen will, sollte ich auch nur genau diesen Zugriff anfordern. Ich vermute mal ganz frech, daß das das Problem ist.
  Mit Zitat antworten Zitat
Benutzerbild von Rakshasa
Rakshasa

Registriert seit: 1. Nov 2003
182 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Registry Key löschen

  Alt 18. Aug 2007, 23:39
Aber wenn er DeleteKey() aufruft, dann ist KEY_ALL_ACCESS schon richtig, da er ja nicht nur lesen will?
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#10

Re: Registry Key löschen

  Alt 18. Aug 2007, 23:56
Zitat:
The valid access rights for registry keys include the DELETE, READ_CONTROL, WRITE_DAC, and WRITE_OWNER standard access rights. Registry keys do not support the SYNCHRONIZE standard access right.
Wenn dann immernoch Fehler 5 kommt, wird das schon seine Gründe haben (die man im Übrigen mit REGEDT32 - auf Windows 2000 - und REGEDIT - Nachfolgeversionen - auch händisch überprüfen kann, falls der Schlüssel mal seine Berechtigungen nicht einfach nur vererbt bekommen sollte - wie es meist der Fall ist).

Und ja, mit KEY_ALL_ACCESS hat man selbstverfreilich auch DELETE-Zugriff, aber umgekehrt ist eben nicht der Fall. Und der Zugriff wird aufgrund des insgesamt angeforderten Zugriffs erlaubt oder verweigert. Also alles im grünen Bereich
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 Uhr.
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