Bajo la clave de registro:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
...hay dos valores bien documentados relacionados con la visualización de archivos y carpetas ocultos en el Explorador de Windows.
La Hidden
clave muestra archivos ocultos cuando es verdadera y los oculta cuando es falsa.
La ShowSuperHidden
clave generalmente se reconoce como su equivalente para archivos "súper ocultos" (es decir, protegidos/del sistema); muestra archivos súper ocultos cuando es verdadero y los oculta cuando es falso.
Dicho esto, ¿dónde SuperHidden
entra el valor? Su nombre sugiere que sería el análogo natural de la Hidden
clave, pero hasta donde yo sé, la documentación sobre ella y lo que hace no existe.
¿Cuál es el propósito del SuperHidden
valor y en qué se diferencia de ShowSuperHidden
?
Respuesta1
ShowSuperHidden
,como descubrimos, controla si se muestran los archivos súper ocultos (Ocultos + Sistema). Hasta donde yo sé, SuperHidden
no controla nada y su existencia probablemente sea un error de programación.
UsandoMonitor de proceso, Observé lecturas y escrituras en estos valores del Registro. La única interacción SuperHidden
fue una escritura cuando el usuario abrió la pestaña Ver del cuadro de diálogo Opciones de carpeta. Recibió un 1 si se muestran archivos súper ocultos, 0 en caso contrario. Nunca se leyó, incluso cuando terminé y reinicié Explorer.
Procmon proporciona la pila que condujo a una operación monitoreada (haga doble clic en un evento y consulte la pestaña Pila), así que examiné los archivos DLL involucrados usandoAIF v5.0. El único relevante con una mención SuperHidden
fue shell32.dll
. La CachedShellState::SaveAdvancedSettings
función emite una escritura de Registro en ese valor y otros en esa clave, confirmando la configuración de vista actual.
Explorer aparentemente llama a esa función antes de mostrar la pestaña Ver. Probablemente esto se haga para asegurarse de que el Registro sea consistente con la configuración actual en memoria antes de cargar el estado actual de las opciones de Ver, aunque admito que no estoy 100% seguro del razonamiento. De todos modos, la shell32.dll
función correspondiente CachedShellState::_GetAdvancedSettings
emite una lectura del valor correcto, ShowSuperHidden
.
Estos listados de desensamblado son de la versión de Windows 7 de esa DLL. En Windows 10, SuperHidden
no existe en el Registro y CachedShellState::SaveAdvancedSettings
escribe en ShowSuperHidden
.
Por lo tanto, concluyo que al programar la versión de esa función que viene con Windows 7, un desarrollador omitió por error el Show
in ShowSuperHidden
, pero el error se corrigió en el camino hacia Windows 10.
Para los curiosos, el cuadro de diálogo Opciones de carpeta no se ve interrumpido por este error porque consulta la ValueName
entrada debajo de cada clave de configuración aquí:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder
Descubrir el significado de las otras partes de esa rama se deja como un ejercicio (¡divertido!) para el lector.