Ich habe einige Sleuthing-Arbeiten an LegacyDisable durchgeführt, die ich unten ausführlich erläutere.
Diese Methode wird von Microsoft im Artikel Verben und Dateizuordnungen - Registrieren von Verben für die Abwärtskompatibilität dokumentiert
:
Einige Anwendungen durchsuchen möglicherweise die Registrierung nach Verbschlüsseln , die nicht mehr verwendet werden. Zu diesem Zweck können diese Schlüssel in der Registrierung belassen werden, indem dem Schlüssel des Verbs der Wert LegacyDisable hinzugefügt wird, der dem System mitteilt, dass das Verb kein tatsächliches Verb ist, sondern ausschließlich aus Gründen der Abwärtskompatibilität existiert.
Die Verwendung des LegacyDisable-Werts wird hier gezeigt. Der Wert muss nur vorhanden sein; Es kann einen beliebigen Werttyp haben (obwohl REG_NONE am besten geeignet ist) und erfordert keine Zuordnung von Daten. Wenn Daten vorhanden sind, werden sie ignoriert.
* KEY_CLASSES_ROOT
* Application
* shell
* open
(Default) = &Open
LegacyDisable
* command
(Default) = command line
Die Verwendung von LegacyDisable scheint zum Deaktivieren von Shell-Kontext-Verben eingeschränkt zu sein, da dies immer nur in diesem Kontext beschrieben wird.
Diese Methode wird vom Dienstprogramm ShellMenuView verwendet, in dem steht, dass "dieser Registrierungsschlüssel von Windows 98 nicht unterstützt wird". Es scheint also, dass er aus Windows NT stammt.
Ich habe diese Methode in zwei Büchern gefunden:
- Windows 7 Annoyances (2010), Seite 179:
Einen Kontextmenüpunkt anzeigen, den Sie entfernen möchten? Löschen Sie einfach die entsprechende Aktionstaste (z. B. Neu, Öffnen, Drucken) und sie verschwindet sofort. Besser noch, fügen Sie dem Schlüssel einen Zeichenfolgenwert mit dem Namen LegacyDisable hinzu, um ihn im Windows Explorer auszublenden, ohne etwas löschen zu müssen.
- Fehlerbehebung bei der Windows-Registrierung, Seite 100
Unter diesen Speicherorten sehen Sie Unterschlüssel für die Software von Drittanbietern, die sich selbst in Ihre Kontextmenüs eingesteckt hat. Es gibt verschiedene Möglichkeiten, damit umzugehen. Sie können die Schlüssel löschen, um sie vollständig zu entfernen. Um zu erzwingen, dass sie nur bei einem Umschalt + Rechtsklick angezeigt werden, fügen Sie jedem Zeichenfolgenwert mit dem Namen "Erweitert" einen Zeichenfolgenwert hinzu. Um sie in der Registrierung zu belassen, aber zu deaktivieren, fügen Sie einen Zeichenfolgenwert mit dem Namen "LegacyDisable" hinzu.
Ich denke, das sind alle nützlichen Informationen, die für LegacyDisable gefunden werden können.
Ich kann nur zwei Vermutungen anstellen, warum CCleaner diese Methode zusammen mit der anderen Methode zur Zerstörung des Schlüssels verwendet:
- Der Code wurde von zwei verschiedenen Programmierern geschrieben, von denen einer nichts über LegacyDisable wusste
- Die Schlüsselzerstörungsmethode wird in Fällen verwendet, in denen LegacyDisable nicht funktioniert (keine Shell-Kontext-Verben).