![]() |
Registry Wert dauerhaft löschen
Ich habe hier ein etwas seltsames Phänomen. Unter dem Schlüssel HKCU\Software\Microsoft\windows\CurrentVersion\Exp lorer\Discardable\PostSetup\ShellNew findetman die Einträge vom den Kontextmenü die man sieht wenn man im Explorer mit der rechten Maustaste klickt und dann "Neu" auswählt. Wenn man dort einen Wert löscht, dann fehlt auch der zugehörige Eintrag im Kontextmenü. Öffnet man das Kontextmenü aber zum zweiten mal, ist der Eintrag in der Registry und im Menü wieder da. allerdings wollte ich die Einträge dauerhaft löschen, weil das Menü voller Einträge ist, die ich nicht brauche und man die nicht findet, die man braucht.
Ich habe mir auch schon ein kleines Programm dafür geschrieben:
Delphi-Quellcode:
Das funktioniert auch, bis auf die Tatsache, dass Windows die gelöschten Einträge wieder erstellt. Windows muss sie sich also noch irgendwo anders merken. Nur wo? Ich habe unter HKCU nichts weiter gefunden.
uses
Registry; const KEY = 'Software\Microsoft\windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew'; procedure RegGetValueNames(const Key: AnsiString; Values: TStrings); var Reg: TRegistry; begin Reg := TRegistry.Create(KEY_READ); try Reg.RootKey := HKEY_CURRENT_USER; if Reg.OpenKey(KEY, false) then begin Reg.GetValueNames(Values); end else RaiseLastOSError; finally Reg.Free; end; end; procedure RegDeleteValue(const Key: AnsiString; const Value: AnsiString); var Reg: TRegistry; begin Reg := TRegistry.Create; try if Reg.OpenKey(KEY, false) then begin if not Reg.DeleteValue(Value) then RaiseLastOSError; end; finally Reg.Free; end; end; procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin try RegGetValueNames(KEY, CheckListBox1.Items); for i := 0 to CheckListBox1.Count - 1 do CheckListBox1.Checked[i] := true; except on E: Exception do ShowMessage(E.Message); end; end; procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin try for i := 0 to CheckListBox1.Count - 1 do begin if not CheckListBox1.Checked[i] then RegDeleteValue(KEY, CheckListBox1.Items[i]); end; except on E: Exception do ShowMessage(E.Message); end; end; |
AW: Registry Wert dauerhaft löschen
Hast du es mal so probiert?
- (eventuell den Explorer abschießen ... Taskmanager) - Einträge löschen - Windows neu starten - weg? |
AW: Registry Wert dauerhaft löschen
Um welche Einträge geht es? Sind das evtl. Einträge von ShellExtensions? Dann solltest du diese Löschen.
Ansonsten wird wohl hier die Registry wohl nur eine Art NIL-Device darstellen. |
AW: Registry Wert dauerhaft löschen
Liste der Anhänge anzeigen (Anzahl: 1)
Windows habe ich noch nicht neu gestartet.
Im Anhang noch mal ein Screenshot von den Einträgen. |
AW: Registry Wert dauerhaft löschen
Neue Erkenntnis:
Unter HKEY_USERS\S-1-5-21-1060284298-492894223-725345543-1003\Software\Microsoft\Windows\CurrentVersion\Exp lorer\Discardable\PostSetup\ShellNew gibt es die gleichen Einträge. Und dort kann ich sie auch löschen. Aber dann sind sie auch wieder da. Auch wenn ich sie in beiden Schlüsseln lösche. |
AW: Registry Wert dauerhaft löschen
In letzter Zeit mal beim Bayrischen Zoll gewesen? :mrgreen: (SCNR^^)
|
AW: Registry Wert dauerhaft löschen
Zitat:
|
AW: Registry Wert dauerhaft löschen
werde die gegf. von den Anwendungen bzw. Installer neu geschrieben?
|
AW: Registry Wert dauerhaft löschen
Nein, die betreffenden Anwendungen wurden nach dem Löschen nicht gestartet.
|
AW: Registry Wert dauerhaft löschen
Vielleicht kommst Du mit Regmon bzw. Prozess Monitor dahinter wer die Schlüssel wieder einträgt
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 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