Cambiare l’immagine di sfondo del desktop con uno script

Da una domanda che mi è stata sottoposta di recente, vediamo come è possibile cambiare l’immagine di sfondo del proprio desktop tramite uno script batch.

Riferendomi a Windows XP, il riferimento all’immagine che è impostata come sfondo viene memorizzato nel registro di Windows nella chiave
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper.

Per modificare una chiave del registro possiamo usare il comando reg.exe presente nel sistema, in breve questa è la sintassi da usare:
REG ADD “HKEY_CURRENT_USER\Control Panel\Desktop” /v Wallpaper /t REG_SZ /d “C:\sfondo.bmp” /f

– ADD specifica che andremo ad aggiungere una chiave nel registro nella posizione specificata subito dopo
– /v serve a specificare la chiave da aggiungere
– /t specifica il tipo di valore che verrà inserito nella chiave
– /d specifica i dati da inserire nella chiave
– /f forza la sovrascrittura della chiave nel caso esista già

Impostata la chiave questa non produrrà alcun effetto immediato in quanto solo all’apertura di Windows vengono letti questi parametri.
Oltre a riavviare Windows per poterne apprezzare la modifica, è possibile ancora una volta da codice forzare la rilettura di queste chiavi del registro con il seguente comando:
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

I due comandi in neretto possono essere racchiusi in un file .bat ulteriormente personalizzabile.

Per gli amanti del windows scripting, ecco la stessa cosa da salvare in un file .vbs:
Dim WshShell
Set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", "c:\sfondo.bmp"
WshShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters", 1, False
Set WshShell = Nothing

Nota: l’immagine di sfondo deve essere di tipo bitmap (.bmp), diversamente Windows stesso mette disposizione il rapido paint.exe per effettuare la conversione dell’immagine dai principali formati a bitmap.

One Reply to “Cambiare l’immagine di sfondo del desktop con uno script”

Leave a Reply

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