en Programacion

Actualizar el fondo del escritorio con un VBS

Últimamente me viene ocurriendo un problemilla en el portátil de casa: como lo dejo encendido para bajar cosillas de internet, lo que hago es cerrarlo para que la pantalla se apague. Al pasar un tiempo en este estado y volver a abrirlo la imágen de fondo del Windows desaparece y me queda solamente con el color de fondo que tenga el tema aplicado. Lo raro es que en el registro de Windows todavía está la dirección de la imágen a usar como wallpaper. Es un problema del refresco de la pantalla de Windows [como no…]
Me he creado un pequeño script en VB para recargar la imágen de fondo en el registro [por si acaso la elimina] y lanzar la actualización de los parámetros del usuario activo en Windows para que vuelva a tener en cuenta esa imágen.

[vb]Dim WshShell
Set WshShell = WScript.CreateObject(«Wscript.Shell»)

ConvertedWallpaper = «C:\Documents and Settings\Usuario\Mis documentos\Mis imágenes\Fondo.jpg»
Wallpaper = «C:\Documents and Settings\Usuario\Configuración local\Datos de programa\Microsoft\Wallpaper1.bmp»

WshShell.RegWrite «HKCU\Control Panel\Desktop\Wallpaper», Wallpaper
WshShell.RegWrite «HKCU\Control Panel\Desktop\ConvertedWallpaper», ConvertedWallpaper
WshShell.Run «C:\WINDOWS\System32\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters», 1, False
‘Wscript.Echo «Proceso finalizado.»

Set WshShell = Nothing[/vb]

Así, abro una nueva categoría dentro de la de Programación que se dedicará a los scripts en visual basic que encuentre de utilidad.

Si teneis el mismo problema, esto os puede ser de utilidad… siempre es mejor que abrir la ventana de opciones del escritorio y cambiarlo a mano 😉