Sobre la lista de fondos recientemente utilizados de Windows 7

Hace poco me llamó la atención un problema con Windows 7 que describe Sergio Calderón en su blog: http://geeks.ms/blogs/checho/archive/2010/04/06/191-es-esto-un-peque-241-o-bug-en-windows-7.aspx. En resumen, el problema es de tipo estético y consiste en que al eliminar un determinado tema en el nuevo formato de Windows 7 Themepack, es posible que queden referencias a carpetas que no existan en la lista desplegable de fondos de escritorio. La respuesta corta es que este problema no es un “bug” de Windows 7, es más bien un comportamiento por diseño o una limitación, como lo vea cada uno, pues esa lista contiene rutas recientemente utilizadas (MRU) y no necesariamente deben estar en sincronismo con las carpetas a las que apuntan (aunque si bien se podría dar la opción al usuario de eliminarlas de la lista si hace clic en ellas y por consiguiente recibe un error de “ruta no encontrada”).

Para dar la respuesta larga vamos a describir el contexto del problema y cuál el motivo de su aparición.

Los archivos con extensión .themepack

Windows 7 introduce un nuevo formato para personalizar gráficamente la interfaz del usuario mediante temas (extensión .themepack). Los temas son una característica que solo es aplicable a Windows 7 Home Premium o superior y que básicamente consisten en un fichero con extensión .CAB que engloba ficheros de diverso tipo (imágenes, sonidos, cursores, y un fichero con extensión .theme que trataremos más adelante). Aquí vemos un ejemplo del contenido del tema Bing’s Best tras haberle cambiado su extensión a .CAB:

BingsBest

¿Qué ocurre al hacer doble clic sobre un fichero con extensión .themepack?

Al hacer doble clic sobre un fichero con extensión .themepack, el sistema invoca al siguiente comando:

rundll32.exe %SystemRoot%\system32\shell32.dll,Control_RunDLL %SystemRoot%\system32\desk.cpl desk,@Themes /Action:OpenTheme /file:<Nombre del archivo>

Si está permitido el cambio de temas (es decir, si el sistema es Windows 7 Home Premium o superior y además no está establecida la directiva “NoThemesTab” (http://technet.microsoft.com/en-us/library/cc780116(WS.10).aspx)), el sistema se dispone a instalarlo. Primeramente se enumeran todos los temas que haya disponibles en el sistema. Los temas son ficheros con extensión .theme y pueden estar en estos directorios:

  • %SystemRoot%\Resources
  • %LocalAppData%\Microsoft\Windows\Themes
  • Subdirectorios de %SystemRoot%\Resources\Themes
  • Subdirectorios de %SystemRoot%\Resources\Ease of Access Themes
  • Subdirectorios de %SystemRoot%\Resources\OEM Theme
  • Carpetas que aparezcan en la clave de registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\InstalledThemes\MCT

El sistema determina cuál es el tema actual examinando la clave de registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes, valor CurrentTheme. Si la configuración visual actual de la máquina fuese diferente de la del tema actual, el sistema creará un tema denominado Custom.theme en el directorio %LocalAppData%\Microsoft\Windows\Themes con la información visual actual de la máquina. Este tema gráficamente aparece con el nombre de “Tema sin guardar”.

La instalación del tema propiamente dicha consiste en extraer el contenido del fichero con extensión .themepack y localizar el fichero.theme que contenga. Este fichero .theme no puede ser demasiado grande, el sistema lo descarta si es mayor de 5 MB (el fichero .themepack también es descartado si excede los 2 GB). Posteriormente, el sistema el sistema lo aplica al sistema copiándolo al directorio de temas (%LocalAppData%\Microsoft\Windows\Themes) y estableciéndolo en el registro como actual (clave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes, valor CurrentTheme). El proceso acaba cuando se muestra al usuario la ventana de Personalización de Windows 7.

Nota: En Windows 7 existe una sintaxis específica para aplicar temas (ficheros .theme) desde la línea de comandos:

control.exe /name Microsoft.Personalization /page ?Theme=<Ruta al fichero .theme>

La lista desplegable Ubicación de la imagen

Ya hemos visto qué es lo que ocurre cuando se instala un tema en Windows 7. Ahora vamos a centrarnos en la lista desplegable que nos ofrece la opción de seleccionar un fondo de escritorio:

Fondos_escritorio

Veamos qué incluye cada categoría:

  • Fondos de escritorio de Windows: Incluye los fondos de escritorio referenciados en las claves de registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers\Knownfolders y HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers\Knownfolders
  • Biblioteca de imágenes: Como su propio nombre indica, incluye las imágenes de la correspondiente biblioteca de imágenes.
  • Fotografías con mejor clasificación: Incluye solamente aquellas fotos calificadas con 4 o más estrellas.
  • Colores sólidos: Listado de colores para establecer como fondo de escritorio.

Estas cuatro categorías aparecen por defecto. Existe una cuarta categoría que podríamos decir que incluye “rutas del usuario”. Hay dos tipos de rutas de usuario que considera Windows:

  • La ruta que contiene al fondo de escritorio actual o a la presentación, si es que no está ya en alguna de las categorías anteriores.
  • Fondos de escritorio recientemente utilizados (MRU).

La primera de las dos subcategorías anteriores está bastante clara. La segunda indica que Windows mantiene un listado de los directorios de fondos de escritorio usados recientemente. Concretamente, se almacenan hasta 3 directorios dentro de la clave de registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers\Images.

Cuando se aplica un tema y se establece el nuevo fondo de escritorio (o presentación), en dicha clave de registro se almacena un valor de nombre “ID-1” que contiene la ruta temporal del fondo de escritorio del usuario. Hay hasta un máximo de 2 rutas temporales (“ID-1” y “ID-2”). En el momento en que el usuario abre el panel Fondo de escritorio, dichos valores temporales desaparecen del registro y las correspondientes rutas se cargan en la lista desplegable Ubicación de la imagen. Al cerrar el panel Fondo de escritorio, incluso haciendo clic sobre el botón Cancelar, se almacenan como máximo hasta 3 rutas de usuario, incluyendo aquellas carpetas a las que hayamos apuntado haciendo clic sobre el botón Examinar.

El problema surge porque al eliminar un tema no se toca para nada la lista de fondos de escritorio recientemente utilizados, únicamente se elimina físicamente la ruta donde está instalado el tema y se notifica al sistema de su desaparición, para que lo elimine de la lista. Por este motivo, la lista desplegable Ubicación de la imagen sigue mostrando rutas de temas que puede que ya ni existan.

El mismo problema puede reproducirse si se crea una carpeta y se apunta a ella haciendo clic sobre el botón Examinar del panel Fondo de escritorio. Una vez hecho esto, cerramos dicho panel y seguidamente borramos la carpeta que acabamos de crear. Al abrir de nuevo Fondo de escritorio vemos que la carpeta eliminada sigue apareciendo en la lista desplegable Ubicación de la imagen.

Próximamente en www.wintecnico.com aparecerá una utilidad capaz de eliminar individualmente rutas de la lista desplegable Ubicación de la imagen.

7 thoughts on “Sobre la lista de fondos recientemente utilizados de Windows 7

  1. Disculpa, me interesa eliminar una de esas molestas referencias obsoletas en la lista de selección del fondo de escritorio. He pasado por la web de http://www.wintecnico.com pero no veo que dicha aplicación que comentas haya salido.
    ¿Podrías, por favor, darme una estimación de cuando saldrá o referenciarme algún sitio donde se explique como eliminar dicha entrada?

    Gracias

  2. hola pues mi problema es que tenia la version de windows 7 starter y puse la version de windows 7 home premium la tengo desde
    mediados del 2010 y pude poner una imagen de fondo en el escritorio.
    hace poco como 3 dias desaparecio la imagen
    solo fue de un dia para otro al dia siguiente prendi la laptop y ya no estaba la imagen y salio negro el fondo de escritorio me gustaria que me ayudaran a poder volver a poner una imagen porque le doy en la imagen y no se puede poner como imagen fondo de escritorio
    NESESITO DE SU AYUDA PORFAVOR

  3. hola pues mi problema es que tenia la version de windows 7 starter y puse la version de windows 7 home premium la tengo desde
    mediados del 2010 y pude poner una imagen de fondo en el escritorio.
    hace poco como 3 dias desaparecio la imagen
    solo fue de un dia para otro al dia siguiente prendi la laptop y ya no estaba la imagen y salio negro el fondo de escritorio me gustaria que me ayudaran a poder volver a poner una imagen porque le doy en la imagen y no se puede poner como imagen fondo de escritorio
    NESESITO DE SU AYUDA PORFAVOR

  4. hola pues mi problema es que tenia la version de windows 7 starter y puse la version de windows 7 home premium la tengo desde
    mediados del 2010 y pude poner una imagen de fondo en el escritorio.
    hace poco como 3 dias desaparecio la imagen
    solo fue de un dia para otro al dia siguiente prendi la laptop y ya no estaba la imagen y salio negro el fondo de escritorio me gustaria que me ayudaran a poder volver a poner una imagen porque le doy en la imagen y no se puede poner como imagen fondo de escritorio
    NESESITO DE SU AYUDA PORFAVOR

  5. hola!!!..

    descarge la aplicacion para eliminar las referencias en la lista de selección del fondo de escritorio pero no me funciono, no me las mostro aparecio en blanco, a que se debera?

    gracias!!!

Leave a Reply

Your email address will not be published. Required fields are marked *