Nel registro di Windows, qual è il valore della string "LegacyDisable" e cosa fa esattamente?

Nel registro di Windows, aggiungere il valore della string LegacyDisable a una chiave serve allo scopo di istruire Windows per ignorare la chiave, i suoi valori e qualsiasi sua sottochiave e sottovalute, effettivamente disabilitandola.

Ad esempio, aggiungere il valore della string LegacyDisable alla seguente chiave:

 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\opennewwindow 

… disabilita l' opennewwindow , rimuovendo l'elemento "Apri in nuova window" dal menu di scelta rapida di Windows Explorer. Gli strumenti di pulizia dei menu di context di CCleaner utilizzano anche LegacyDisable per questo scopo.

Tuttavia, la documentazione sul valore della string sembra inesistente; Non sono stato in grado di trovare nulla a tutti i documenti, qui o via Google, quindi sono rimasto confuso da where proveniva, sia che distriggersre le chiavi del Registro di sistema sia tutto ciò che è stato mai destinato e perché non è documentato .

Distriggers le chiavi del Registro di sistema di LegacyDisable ?

Quando viene usato per distriggersre le chiavi del Registro di sistema, come cambia il suo comportmento rispetto all'altro metodo utilizzato da CCleaner – prepensionando il text normale ai dati esadecimali di una string? Perché CCleaner utilizza entrambi i methods?

Ho fatto un po 'di lavoro su LegacyDisable che ho dettagli qui sotto.

Questo metodo è documentato da Microsoft nell'articolo Verbi e associazioni di file – Registrazione di verbi per la compatibilità indietro :

Alcune applicazioni possono cercare il Registro di sistema per le chiavi verbali che non vengono più utilizzate. A tale scopo, tali chiavi possono essere lasciate nel registro con l'aggiunta del valore LegacyDisable alla chiave del verbo, che indica al sistema che il verbo non è un verbo effettivo, ma esiste solo per la compatibilità con l'indietro.

Qui viene mostrato l'utilizzo del valore LegacyDisable. Il valore deve essere presente solo; può essere di qualsiasi tipo di valore (anche se REG_NONE è più appropriato) e non richiede alcun dato da associare. Se i dati sono presenti, viene ignorato.

 * KEY_CLASSES_ROOT * Application * shell * open (Default) = &Open LegacyDisable * command (Default) = command line 

L'utilizzo di LegacyDisable sembra limitato per disabilitare i verbi di context di shell, in quanto sempre descritti in questo context.

Questo metodo viene utilizzato dall'utilità ShellMenuView in cui si dice che "questa chiave del Registro di sistema non è supportta da Windows 98", quindi sembra che esso sia originato in Windows NT.

Ho trovato questo metodo citato in due libri:

  • Windows 7 Annoyances (2010), pagina 179:

Vedere una voce di menu di scelta rapida da eliminare? Basta cancellare il tasto d'azione corrispondente (ad esempio, Nuovo, Aperto, Stampa) e scompare immediatamente. Meglio ancora, aggiungere un valore di string denominato LegacyDisable alla chiave per nasconderlo in Esplora risorse senza wherer eliminare nulla.

  • Risoluzione dei problemi relativi al Registro di sistema di Windows, pagina 100

In queste posizioni verranno visualizzate le sottochiavi per il software di terze parti che è stato collegato ai menu di scelta rapida. Ci sono diversi modi per gestirli. È ansible eliminare i tasti per rimuoverli completamente. Per costringerli a mostrare solo su un tasto Shift + destro, aggiungere un valore di string a ciascuna chiamata "Extended" o lasciarli nel Registro di sistema ma distriggersrli, aggiungere un valore di string denominato "LegacyDisable".

Penso che si tratti di tutte le informazioni utili che si possono trovare per LegacyDisable.

Per quanto riguarda il motivo per cui CCleaner impiega questo metodo insieme all'altro metodo di distruggere la chiave, posso fare solo due congetture:

  1. Il codice è stato scritto da due diversi programmatori, uno dei quali non conosceva LegacyDisable
  2. Il metodo di distruzione chiave viene utilizzato per i casi in cui LegacyDisable non funziona (non verbi context shell).