Was ist in der Windows-Registrierung der Zeichenfolgenwert "LegacyDisable" und was genau macht er?

8

In der Windows-Registrierung LegacyDisabledient das Hinzufügen des Zeichenfolgenwerts zu einem Schlüssel dazu, Windows anzuweisen, den Schlüssel, seine Werte sowie alle seine Unterschlüssel und Unterwerte zu ignorieren und ihn effektiv zu deaktivieren.

Fügen Sie beispielsweise den LegacyDisableZeichenfolgenwert zum folgenden Schlüssel hinzu:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\opennewwindow

... deaktiviert das opennewwindowEntfernen des Elements "In neuem Fenster öffnen" aus dem Kontextmenü des Windows Explorers. ZuLegacyDisable diesem Zweck werden auch die Bereinigungstools für das Kontextmenü von CCleaner verwendet.

Eine Dokumentation zum Zeichenfolgenwert scheint jedoch nicht vorhanden zu sein. Ich konnte weder hier noch über Google etwas finden, das es dokumentiert, daher bin ich verwirrt darüber, woher es kam, ob das Deaktivieren von Registrierungsschlüsseln alles ist, wofür es jemals gedacht war, und warum es nicht dokumentiert ist .

Ist das Deaktivieren von Registrierungsschlüsseln LegacyDisableder einzige Zweck?

Wie unterscheidet sich das Verhalten beim Deaktivieren von Registrierungsschlüsseln von der anderen von CCleaner verwendeten Methode, bei der den Hex-Daten eines Zeichenfolgenwerts einfacher Text vorangestellt wird? Warum verwendet CCleaner beide Methoden?

Hashim
quelle
3
Da Microsoft anscheinend kein offizielles Dokument zum Zweck von LegacyDisable veröffentlicht hat, scheinen die bereits in Ihrer "Frage" aufgezeichneten Informationen so viele Informationen zu enthalten, wie tatsächlich für diesen Zeichenfolgenwert verfügbar sind.
music2myear
Wenn es bis zu NT4 zurückreicht, wäre die nächste natürliche Frage, warum um alles in der Welt es für moderne Systeme immer noch erlaubt ist / sich darauf verlässt.
Hashim

Antworten:

5

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:

  1. Der Code wurde von zwei verschiedenen Programmierern geschrieben, von denen einer nichts über LegacyDisable wusste
  2. Die Schlüsselzerstörungsmethode wird in Fällen verwendet, in denen LegacyDisable nicht funktioniert (keine Shell-Kontext-Verben).
harrymc
quelle
1
"mach zwei Konjunktionen" ... vielleicht meinst du Vermutung ?
Ich sage Reinstate Monica
1
@ Twisty: Ja, mein Gehirn hat es getan, aber meine Finger sind nicht gefolgt. Korrigiert und danke.
Harrymc
Vielen Dank für die Recherche, die Sie durchgeführt haben, und es tut mir wirklich leid, dass ich das Kopfgeld nicht rechtzeitig vergeben habe.
Hashim