Cómo utilizar el filtrado de archivos de Windows en la vista de miniaturas

Cómo utilizar el filtrado de archivos de Windows en la vista de miniaturas

Si ve una carpeta en modo detalles y mira el encabezado de las columnas, verá una flecha al lado de cada una de las propiedades (nombre, tamaño, álbum, artista, etc.). Al hacer clic en esa flecha, aparecerá un menú que enumera todas las etiquetas disponibles en esa propiedad determinada, donde puede seleccionar las que desea filtrar en esa columna, luego puede filtrar los archivos aún más haciendo lo mismo en otra columna, etc.

Aquí hay una captura de pantalla de los filtros de archivos.

filtros de archivos

Quiero poder usar esa función en otras vistas de carpetas, como la vista de miniaturas, por ejemplo. No estoy seguro de cuál es el enfoque correcto para lograrlo. Pensé que tal vez podría haber un acceso directo para estos menús o tal vez un ajuste del registro para mostrar siempre el encabezado de la columna de detalles en todas las vistas, pero no tengo idea de cómo hacerlo.

Después de filtrar en la vista de detalles, puedo cambiar la vista de carpeta a cualquier otra cosa y los filtros permanecen intactos para quehaceTrabajo en otras vistas, pero tengo que cambiar al modo de detalles y luego volver a las miniaturas cada vez que quiero usar un filtro, por lo que quiero omitir este paso.

Respuesta1

Nota: Lo siguiente funciona en mi computadora portátil:

Edición Windows 10 Home
Versión 22H2
Instalado en ‎8/‎10/‎2020
SO build 19045.2486
Experiencia Paquete de experiencia de características de Windows 120.2212.4190.0

Las funciones que ya no son compatibles pueden cambiar en cualquier momento. No me he lanzado a Windows 11, sí, así que no tengo idea al respecto.


Un componente deExploradorver la configuración es un conjunto de banderas,Banderas de carpetas. la bandera que normalmente suprime la visualización de encabezados de columna es:

FWF_NOHEADERINALLVIEWS
Valor: 0x01000000
Windows Vista y posterior. Mostrar solo el encabezado de la columna en el modo de vista de detalles.

Pero incluso si la bandera se borra en la plantilla de archivo,Exploradorlo anula al mostrar la carpeta y los encabezados solo se muestran a Detailsla vista. Pero enPotencia Shell, la bandera puede ser limpiada paraactivo Exploradorventanas y se mostrarán los encabezados:

ingrese la descripción de la imagen aquí

EstePotencia ShellEl código activará los encabezados de columna en todos.Exploradorventanas que se abren cuando se ejecuta el comando:

@((New-Object -Com shell.application).Windows()).ForEach({
    $_.Document.FolderFlags = ($_.Document.FolderFlags -band 0xfeffffff)
    $_.Refresh()
})

El código anterior se puede copiar, pegar en unPotencia Shellventana de la consola, y ejecutado para una prueba rápida de su viabilidad; pero esa no es una buena manera de ejecutarlo para el uso diario. Me pareció crear una entrada del menú contextual para elfondo del directorioEl menú tenía más sentido. Para eso, necesitamos una versión del código de línea de comandos.

Una línea de comando adecuada para el Rundiálogo o como destino de un acceso directo (y por lo tanto también adecuada como comando del menú contextual) sería:

PowerShell -NoProfile -ExecutionPolicy Bypass -Command '& {@((New-Object -Com shell.application).Windows()).ForEach({$_.Document.FolderFlags = ($_.Document.FolderFlags -band 0xfeffffff');$_.Refresh()})}'

Pero está el molesto breve destello del azulPotencia Shellconsolal cuando se ejecuta el comando. Para evitar eso, usamos cmd.exepara lanzarPotencia Shellminimizado. LanzamientoPotencia ShellLos comandos de cmd.exepresentan problemas con caracteres especiales y comillas que a menudo se resuelven con referencias .bato .ps1archivos, pero podemos mantener nuestro comando regsitry autónomo usando el -EncodedCommandparámetro PowerShell con una versión del comando codificada en Base64. El siguiente código se puede copiar como un bloque, pegar en unPotencia Shellcosole y ejecutado para crear la entrada del menú contextual:

$PSCommand      = '@((New-Object -Com shell.application).Windows()).ForEach({ $_.Document.FolderFlags = ($_.Document.FolderFlags -band 0xfeffffff); $_.Refresh()})'
$CommandBytes   = [System.Text.Encoding]::Unicode.GetBytes($PSCommand)
$encodedCommand = [Convert]::ToBase64String($CommandBytes)

$CommandLine    = 'cmd.exe /c start /min "" PowerShell -NoProfile -ExecutionPolicy Bypass -EncodedCommand ' + $EncodedCommand

$RegKey         = 'HKCU:\SOFTWARE\Classes\Directory\Background\Shell\ShowColumnHeaders'

[PSCustomObject]@{
    '(Default)' = 'Show Column Headers'
   'Position' = 'Top'
} | Set-ItemProperty -Path (mkdir $RegKey -Force).PSPath

New-Item -Path $RegKey -Name Command -Value $CommandLine | out-null

Si lo prefiere, puede crear la entrada del menú fusionando un .regarchivo. Aquí hay una exportación de las claves de registro creadas por el código anterior. guárdelo como un .regarchivo y luego combínelo para crear la entrada del menú contextual:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\Shell\ShowColumnHeaders]
@="Show Column Headers"
"Position"="Top"

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\Shell\ShowColumnHeaders\Command]
@="cmd.exe /c start /min \"\" PowerShell -NoProfile -ExecutionPolicy Bypass -EncodedCommand QAAoACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AQwBvAG0AIABzAGgAZQBsAGwALgBhAHAAcABsAGkAYwBhAHQAaQBvAG4AKQAuAFcAaQBuAGQAbwB3AHMAKAApACkALgBGAG8AcgBFAGEAYwBoACgAewAgACQAXwAuAEQAbwBjAHUAbQBlAG4AdAAuAEYAbwBsAGQAZQByAEYAbABhAGcAcwAgAD0AIAAoACQAXwAuAEQAbwBjAHUAbQBlAG4AdAAuAEYAbwBsAGQAZQByAEYAbABhAGcAcwAgAC0AYgBhAG4AZAAgADAAeABmAGUAZgBmAGYAZgBmAGYAKQA7ACAAJABfAC4AUgBlAGYAcgBlAHMAaAAoACkAfQApAA=="

Después de usar cualquiera de los dos métodos anteriores para crear los claves de registro, debería ver un nuevo elemento en la parte superior del menú contextual de fondo deExploradorventanas:

ingrese la descripción de la imagen aquí

Después de ejecutar:

ingrese la descripción de la imagen aquí

Tal comoExploradoranula la configuración de la plantilla, los encabezados desaparecerán incluso al navegar a una subcarpeta de la carpeta actual. No conozco ninguna forma de evitarlo: simplemente tienes que ejecutar el comando nuevamente.

información relacionada