Modifica dello sfondo del desktop di Windows 7


1

ho cercato online una soluzione batch per cambiare lo sfondo del desktop di Windows 7 Ultimate a 64 bit e, dopo diversi tentativi, sono riuscito a farlo funzionare solo una volta ma mai più ...

Sto usando questo:

SET "str=C:\Users\Jorge\Dropbox\Photos\Wallpapers\1379362257639.jpg"
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /f /t REG_SZ /d %str%
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

Nella finestra "Costumize" dopo averlo eseguito, il nuovo sfondo appare lì, ma Desktop non si aggiorna ... perché? Inoltre, ho confermato che la chiave di registro cambia anche nel percorso dell'immagine e ho provato l'estensione bmp.

La parte strana è che, se lo eseguo più volte, alla fine cambia casualmente (nell'immagine corretta ma a caso ...) non so perché?

Modifica: sembra che dopo la terza / quarta volta eseguendo lo stesso codice, cambi definitivamente ..?

Risposte:


1

Dovrebbero

SET "str=C:\Users...

Essere

SET str="C:\Users...

?


Bene, funziona anche, credo che sia la stessa cosa, il problema è che non cambia sempre alla prima esecuzione del file batch, voglio sapere perché ..
SomeNickName


Bene, ho cercato ulteriormente e apparentemente ho scoperto che questo non funziona correttamente in Windows 7 + ... non so davvero come usare quell'API da un file batch, l'esempio che è stato fornito lì ha lo stesso effetto sul cambiamento qui ..
SomeNickName

Come vedo, il problema è solo nell'aggiornamento dello sfondo e, poiché RUNDLL32.EXE USER32.DLL, UpdatePerUserSystemParameters sembra non funzionare correttamente, necessita sempre più volte (circa 4) di aggiornare correttamente il desktop ... Come posso ' non trovo nulla in questo momento che risolva il problema, a quanto pare questo è in aumento dal 09
SomeNickName

0

Ho scoperto che non avevo alcuna possibilità di farlo perfettamente usando solo un file batch ... per quanto riguarda la mia conoscenza del batch, quindi, ho usato vb.net per individuare la SystemParametersInfo funzione in questo modo:

Const SPI_SETDESKWALLPAPER As UInteger = &H14
Const SPIF_SENDCHANGE As UInteger = &H2

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "IMAGE_PATH", SPIF_SENDCHANGE)

Nota: in questo caso, l'immagine non deve essere bmp, ho provato con jpg e ha funzionato bene. Nel mio caso non c'è alcun problema nell'usare vb.net per raggiungere questo obiettivo, spero di aver aiutato qualcuno;).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.