Tengo la misma situación aquí. Lo hice de una manera un poco diferente + no requiere privilegios de administrador:
Cree un nuevo directorio: C: \ Wallpaper
Mueva allí su fondo de pantalla, cambie su tamaño a las dimensiones de su pantalla y cámbiele el nombre a background.jpg . Para cambiar el tamaño de la imagen sin ninguna aplicación de terceros, abra el archivo background.jpg con MS Paint, presione CTRL + W (para cambiar el tamaño), deseleccione "Mantener relación de aspecto", seleccione el botón de opción "Píxeles" y ajuste su imagen de acuerdo con el tamaño de su escritorio .
Cree un nuevo archivo en ese directorio llamado wallpaper.bat con el siguiente contenido (tenga en cuenta que puede cambiar 30 a un número mayor si no se configura en el arranque. Por ejemplo: 60 o 90):
timeout /t 30 /nobreak > NUL
Call background.xlsm
- Cree el archivo wallpaper.vbs en el mismo directorio con el siguiente contenido:
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run chr(34) & "C:\Wallpaper\wallpaper.bat" & Chr(34), 0
Set WshShell = Nothing
- Abra MS Excel (más tarde lo guardará allí, pero ahora solo siga las instrucciones), presione Alt + F11 y se abrirá Visual Basic para Aplicaciones. En el lado izquierdo debería ver el navegador del proyecto, así que haga doble clic en ThisWorkbook y pegue el siguiente contenido:
Private Sub Workbook_Open()
If (ThisWorkbook.Name = "background.xlsm") Then
Call changeWallpaper("C:\Wallpaper\background.jpg")
Application.DisplayAlerts = False
Application.Quit
End If
End Sub
- En el mismo archivo de Excel, haga clic derecho en cualquiera de los elementos en el navegador del proyecto, luego "Insertar", luego "Módulo" y pegue el siguiente código:
Option Explicit
Public Declare Function SystemParametersInfo Lib "user32" Alias
"SystemParametersInfoA" _
(ByVal uAction As Long, ByVal uParam As Long, _
ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
Public Const SPI_SETDESKWALLPAPER = 20 Public Const
SPIF_SENDWININICHANGE = &H2 Public Const SPIF_UPDATEINIFILE = &H1
Public Sub changeWallpaper(location As String)
Dim strImagePath As String
strImagePath = location
Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, strImagePath, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
End Sub
- Asegúrese de que las macros estén siempre disponibles sin confirmación para habilitarlas para este archivo. Guarde este archivo como archivo de Excel habilitado para macros con la extensión xlsm (es necesario nombrarlo background.xlsm):
C:\Wallpaper\background.xlsm
Cierre y abra el archivo xlsm Excel. Si se configura el fondo de pantalla, ya está. Si no, verifique la seguridad de las macros. ¿Quizás necesite agregar ese archivo de Excel a una lista blanca en la configuración de seguridad de macros de Excel? Para mí, funciona. Si todavía no puede hacerlo funcionar, no tiene suerte.
Establecer fondo de pantalla en el arranque: en el directorio de inicio de Windows, coloque el acceso directo del archivo wallpaper.vbs . Para hacer un acceso directo, haga clic derecho en el archivo wallpaper.vbs y haga clic en "Crear acceso directo". Para abrir el directorio de inicio, vaya a Inicio -> Todos los programas -> carpeta de inicio , luego haga clic derecho sobre él y "Abrir". Mueva su acceso directo creado a ese directorio de inicio.
NOTA 1: Después de arrancar, pasarán 30 segundos y su fondo de pantalla deberá configurarse correctamente. Sin el temporizador (30 segundos) el archivo de Excel dará error por alguna razón.
NOTA 2: Para editar el archivo Excel xlsm , cámbiele el nombre a cualquier otro nombre (por ejemplo, bbackground.xlsm ) y ábralo. Cuando termine de modificar el contenido, guárdelo y cambie el nombre a background.xlsm .