Visual Basic Simple
Cambiare lo sfondo del desktop di Windows
Sincronizza Indice
Sincronizza Indice
Scarica il progetto
Scarica il progetto
Scarica il testo dell'articolo
Testo dell'articolo
Stampa l'articolo
Stampa l'articolo
Ricerca personalizzata

Difficoltà: 1 / 5

Cambiare lo sfondo del desktop di Windows attraverso un programma Visual Basic è un'operazione semplicissima. Esiste infatti una funzione API che permette l'impostazione di valori di sistema, quale lo sfondo del desktop.

In questo progettino non utilizzeremo alcun form. All'avvio del programma verrà cambiato lo sfondo del desktop e l'esecuzione terminerà subito dopo.

Abbiamo, per cui, bisogno di un progetto senza forms. Creato un progetto standard, è necessario rimuovere il form: selezionare il form da rimuovere e cliccare la voce Rimuovi Form1.frm dal menu Progetto.

Al posto del form inseriremo un modulo standard tramite la voce Inserisci modulo dal menu Progetto.

Creato il modulo, inseriamo il codice seguente:

  1. Option Explicit
  2. Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
  3. Private Const SPI_SETDESKWALLPAPER = 20
  4. Private Const SPIF_UPDATEINIFILE = &H1
  5. Private Const NOMESFONDO = "SFONDO1.BMP"

Alla riga 2 appare la dichiarazione della funzione SystemParametersInfo che verrà utilizzata per cambiare lo sfondo del desktop di Windows. Essa richiede 4 parametri: uAction definisce il tipo di operazione da effettuare - nel nostro caso il cambiamento del desktop di Windows - i cui valori sono definiti nelle costanti API alle voci SPI_; uParam è un parametro aggiuntivo all'operazione uAction; lpvParam è un parametro specifico per l'operazione da effettuare, e in genere indica il nome di un file da utilizzare - nel nostro caso sarà il percorso dello sfondo da applicare - ed infine l'ultimo parametro è fuWinIni che indica la modalità di notifica di tali cambiamenti al sistema e i suoi valori si trovano come costanti API alle voci SPIF_.

Alla riga 3 abbiamo definito l'operazione da effetture: SPI_SETDESKWALLPAPER ovvero impostare lo sfondo del desktop. Alla riga 4 invece abbiamo la modalità di aggiornamento dei dati, mediante costante SPIF_UPDATEINIFILE, che aggiorna il contenuto del file Win.ini e comunica al sistema il cambiamento, applicando subito le modifiche.

Alla riga 5, abbiamo definito la costante NOMESFONDO che indica il nome del file immagine dello sfondo da applicare. Tale file deve essere presente nella stessa cartella del programma. Nel nostro esempio l'immagine si chiamerà SFONDO1.BMP, un semplice paesaggio (generato da me con un semplice programmino parecchi anni fa ^__^).

Naturalmente sarà possibile cambiare l'immagine. La nostra immagine è scaricabile tramite questo collegamento; una volta scaricata dovrà essere scompattata nella stessa cartella del programma tramite WinZip o programmi analoghi.

  1. Private Sub Main()
  2.     Dim PATHSFONDO As String
  3.     PATHSFONDO = App.Path & "\" & NOMESFONDO
  4.     SystemParametersInfo ByVal SPI_SETDESKWALLPAPER, ByVal 0&, ByVal PATHSFONDO, SPIF_UPDATEINIFILE
  5. End Sub

Nello stesso modulo abbiamo definito la Sub Main. Essa infatti funge da modalità di avvio in mancanza di un form specifico. Per saperne di più sulle modalità di avvio di un progetto vedi la sezione Informazioni aggiuntive sulle modalità di avvio.

La funzione sub si compone di tre semplici righe: la riga 8 definisce una variabile di appoggio di nome PATHSFONDO. Essa conterrà il percorso completo del file immagine da utilizzare come sfondo.
Infatti, alla riga 9, abbiamo questa impostazione, mediante congiunzione della cartella del programma e della costante NOMESFONDO.

Alla riga 10 abbiamo la chiamata alla funzione SystemParametersInfo, per effettuare il cambiamento dello sfondo del desktop. La chiamata viene eseguita passando come parametri la costante SPI_SETDESKWALLPAPER che indica il cambiamento dello sfondo; il secondo parametro contiene uno zero perché questo parametro non è necessario per l'operazione che stiamo effettuando; il terzo parametro conterrà il percorso del file immagine da impostare, ovvero la variabile PATHSFONDO; l'ultimo parametro è la modalità di aggiornamento, costante SPIF_UPDATEINIFILE.

Il programma, subito dopo l'esecuzione della riga 10 si chiude, senza richiedere nessuna interazione da parte dell'utente.

Per eseguire questo progetto sarà necessario impostare la sub Main come oggetto di avvio, tramite la voce Proprietà progetto dal menu Progetto.

Naturalmente si consiglia di non abusare di questa funzione perché lo sfondo del desktop di Windows viene scelto dall'utente e sarà la schermata principale che egli vedrà ad ogni utilizzo del computer.

Quindi, prima di eseguire quest'operazione, chiedete sempre il permesso all'utente, mediante la visualizzazione di una videata di richiesta tramite una MessageBox.

Daniel e Fibia FBI
18 Gennaio 2001

Scarica il progetto
Scarica il progetto
Scarica il testo dell'articolo
Scarica il testo dell'articolo
Stampa l'articolo
Stampa l'articolo
Torna all'indice degli HowTo