![]() |
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
|
AW: Registry Wert dauerhaft löschen
Ich meine mich zu erinnern, daß einige Teile der Registry nur gespiegelt sind, weiß aber nicht ob das speziell für diese gilt.
Ggf. müßtest Du mal unter HKey_local_Machine nachschauen. Gruß K-H |
AW: Registry Wert dauerhaft löschen
Hm, aber sind diese Einträge nicht benutzerspezifisch?
|
AW: Registry Wert dauerhaft löschen
ich verweise mal auf Google :mrgreen:
"context menu new" liefert an zweiter Stelle folgendes: ![]() Das Progamm sieht schon sehr nach dem aus, was du gerade möchtest. Die Anleitung wie man den Aktenordner noch wegbekommt ist dann auch die Lösung für deine wiederkehrenden Einträge: Das was du da entfernst ist wohl nur ein Cache, die eigentliche Information scheint in HKEY_CLASSES_ROOT zu stecken. Zu jeder Datei die man dort "Neu" anlegen kann, existiert ein ShellNew Schlüssel. Wie (oder ob) das jetzt nach Benutzern differenziert wird, konnte ich jetzt nicht herausfinden. HKEY_CLASSES_ROOT ist auf jeden Fall Global, ggf. mal das Programm mit RegMon analysieren... Ich hoffe das hat geholfen ;-) |
AW: Registry Wert dauerhaft löschen
Ich habe gegoogelt, allerdings nur nach dem Registry Eintrag. Und genau so ein schlankes Programm wollte ich mir selber machen. Ich gucke es mir aber mal an. Danke für den Hinweis.
|
AW: Registry Wert dauerhaft löschen
Ich glaube, es war doch ein Reboot nötig. Eventuell reicht auch nur ein Ab- und wieder Anmelden. Denn jetzt sind die Einträge irgendwie dauerhaft gelöscht. :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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