¿Puedo cambiar el cuadro de diálogo "Buscar carpeta" del sistema globalmente?

15

Hasta donde yo sé, todos odian el cuadro de diálogo "Buscar carpeta":

buscar el diálogo de carpeta

Este cuadro de diálogo siempre es demasiado pequeño, rara vez recuerda bien las ubicaciones, y lo peor de todo: lo obliga a navegar por toda su computadora utilizando una tediosa estructura de árbol.

Ahora, para ser justos, es probable que algunos de los problemas tengan que ver con la forma en que las aplicaciones invocan el control, sin establecer un tamaño o un directorio predeterminado, etc. Pero el problema sobre el tedioso control del árbol persiste.

¿Hay alguna forma de personalizar su instalación de Windows para usar un control diferente? Preferiblemente, una aplicación / instalador que lo haga por usted de manera segura, pero colocar una DLL compatible o una técnica similar también estaría bien.

¿O estamos atrapados con este terrible control para siempre?

Chris Phillips
fuente
La mayoría de las quejas que tiene son opciones controladas por el software que lo utiliza. Tendría que reemplazar todo el shell para cambiarlo.
Ramhound
1
Es una excusa pobre para una interfaz de usuario.
aliteralmind
2
Este terrible UX me molesta cada vez.
Ryan

Respuestas:

1

respuesta corta, sí, estás atrapado con eso

respuesta larga:

la función que está mencionando es la función SHBrowseForFolder () en Shell32.dll. Esta función está vinculada y ejecutada desde miles de programas, por lo que, a menos que esté escribiendo un programa específico para el que desea un cuadro de diálogo modificado, lo que desea no será posible sin modificar o reemplazar shell32.dll (que es para todos los efectos, más allá del alcance de este sitio).

Aquí está la documentación para la función: http://msdn.microsoft.com/en-us/library/windows/desktop/bb762115%28v=vs.85%29.aspx

si simplemente desea cambiarlo dentro de un programa que está escribiendo, busque los detalles de su idioma / plataforma para encontrar tutoriales (son abundantes).

Frank Thomas
fuente
2
Solo quería preguntar, hay una versión del diálogo que es marginalmente más útil ya que al menos le permite copiar / pegar una ruta. ¿Es un cuadro de diálogo personalizado, o tal vez SHBrowseForFolder () en sí con algunos parámetros, o hay una función separada para ello?
Karan
@Karan, por lo que veo en el documento, si configura el parámetro de entrada lpbi de funciones para que apunte a la dirección de una instancia de BROWSEINFO cuyo UFLAGS está configurado en 0x00000010, aparecerá el cuadro de edición. desafortunadamente, dado que es un parámetro, solo el desarrollador tiene la opción de mostrarlo o no aplicación por aplicación.
Frank Thomas
Gracias y sí, parece que se debe establecer el indicador BIF_EDITBOX. "solo el desarrollador tiene la opción de mostrarlo o no" - Pero claro. No estaba insinuando que esto era algo que el usuario final podría esperar hacer con el binario.
Karan