PDA

View Full Version : [Mod]Stasera mi son divertito col batch a cambiare lo sfondo random


borexino
05-10-2008, 23:04
Ciao a tutti, stasera stavo cambiamno il wallpaper del desktop del mio xp ed allora mi è venuta una brillante idea :idea:
Mi son detto perchè non creare uno scriptino in bat che cambi in automatico lo sfondo ogni volta che si avvia windows???
Detto fatto!! ecco la pappa pronta


@echo off
: --------> Borexino per hwupgrade
:: CONTO I FILE DELLA CARTELLA WALLPAPERS
for /f "tokens=* delims= " %%b in ('dir "C:\WINDOWS\Web\Wallpaper" /b ^| find /v /c "::"') do (
set num=%%b
echo Ho trovato %num% files
)

:: TROVO IL FILE RANDOM
setLocal EnableDelayedExpansion
set /a z=%random%%%num%+1
for /f "tokens=* delims= " %%a in ('dir "C:\WINDOWS\Web\Wallpaper" /b *.*') do (
set /a N+=1
if !z! equ !N! REG ADD "HKCU\Control Panel\Desktop" /V Wallpaper /T REG_SZ /F /D "C:\WINDOWS\Web\Wallpaper\%%a"
)

::APPLICO IL NUOVO WALLPAPER AGGIORNADO IL DESKTOP
%SystemRoot%\System32\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters


E funziona :sofico: :sofico: :sofico:

I wallpapers devono essere salvati in formato bmp nella cartella C:\WINDOWS\Web\Wallpaper oppure modificate il codice a vostro piacimento. Purtroppo funziona solo con i bmp perchè windows accetta solo questo formato come sfondo, infatti se si tenta di mettere una immagine in formato jpg sul desktop, windows prima di applicarla la modifica in .bmp e la poggia nella cartella delle impostazioni personali.

Adesso io mi creo un bel exe dal batch e lo metto come servizio così ad ogni avvio mi cambia lo sfondo!!
Spero vi piaccia!!

Ciao

Khronos
05-10-2008, 23:40
fai l'exe e postalo nel mio thread del modding, grazie ^^
anche il bat non disdegno, eh :D
lo si modifica per una posizione più userfriendly, come X:\Documents and Settings\Utente\Documenti, si copia l'immagine scelta nel path dove verrà applicata, si controlla se c'era già stata una vecchia applicazione (cancellando il vecchio file) e si rinomina con un nome "apposta" prima di applicarla (che è quello cercato già per il vecchio file).
così se c'è già stato un precedente wallpaper scelto dallo stesso script, viene sostituito solo nella cartella in arrivo senza creare duplicati multipli.^^

borexino
06-10-2008, 00:19
Non ho ben capito ciò che hai detto... :confused: :confused: :confused:

forse è l'ora tarda che mi ha stravolto :muro:
Ho provato a metterlo come servizio, ma non va... boooh tenterò domani..Invece mettendolo all'avvio di windows va benissimo l'inconveniente è che appare per un secondo la finestra nera di dos MALEDIZIONE
comunque ecco l'eseguibile:

Khronos
06-10-2008, 10:40
Non ho ben capito ciò che hai detto... :confused: :confused: :confused:

dunque.
per renderlo "usabile per tutti" dicevo di modificare il bat in questo modo:
Si preleva l'immagine random dalla solita
X:\Documents and Settings\Utente\Documenti\immagini
avendo cura naturalmente di cercare soltanto i .bmp .
Si controlla se c'era già stato una applicazione precedente dello stesso procedimento:
se c'è un file chiamato ciao.bmp in C:\WINDOWS\Web\Wallpaper , cancellalo.
così se c'è già stato un precedente wallpaper scelto dallo stesso script, viene sostituito solo nella cartella in arrivo senza creare duplicati multipli.

Si copia l'immagine nuova scelta nel path dove verrà applicata,
C:\WINDOWS\Web\Wallpaper
e si rinomina in ciao.bmp
il quale verrà applicato con la successiva istruzione per il registro.

ti ho chiesto se posti nel thread Modding che ho in firma. ^^ nel frattempo linko questa discussione di la.

borexino
06-10-2008, 11:37
Allora si potrebbe fare una cosa più simpatica...
Possiamo utilizzare la libreria imagemagick in questo modo.....
Il batch cerca random nella cartella immagini anche jpg,tiff,png ecc e tramite la libreria imagemagick si crea una copia bmp dell'immagine selezionata dal random in windows\web\wallpaper.
L'unico dubbio che ho riguarda i controlli.... Quello che dici tu si può anche fare col batch ma diventa macchinoso e pesante :rolleyes: :rolleyes:

Questo è solo un giochetto che ho fatto per passare tempo :muro:

Khronos
06-10-2008, 11:53
lol :D

il problema è che non sempre la cartella documenti te la trovi in
%userprofile%/documenti... quindi O l'utente se lo modifica per se, oppure caccia tutte le immagini già in quella cartella che hai detto te e stop...
perchè non è difficile cercare solo i bmp, basta fare
dir *.bmp indirizzo
viene lunga se bisogna controllare dove sia la cartella immagini.
piuttosto lasciamolo così, però la faccenda della libreria imagemagick interessa. ^^

borexino
06-10-2008, 13:29
Allora, ho fatto in modo che lo scriptino all'avvio non visualizzi la fastidiosa finestra nera di cmd.
Lo zip qui sotto contiene la cartella RandomWallpapers che deve essere inserita in C:\Programmi\ e un file .reg . Per l'avvio automatico basta cliccare 2 volte sul file .reg e dare "SI" in questo modo si crea la chiave di registro che consente al tool di partire automaticamente all'avvio di windows.

Per chi si vuole divertire, nella carella RandomWallpapers, oltre all'eseguibile, troverà il file hide.vds che contiene il vbscript per permettere l'hidden; e la cartella scr con i sorgenti in batch

Divertitevi

ciao

Vic24
17-10-2008, 17:03
C'è possibilità di averlo compatibile con immagini jpg?

patrick40
17-10-2008, 17:58
Se volete gestire gli sfondi di Windows, io uso da tempo questo freeware

http://awc.smurphy.co.uk/index.htm

:)

Khronos
17-10-2008, 20:01
quello è un software che sta sotto e che cambia sfondo "ogni tot tempo".
lo script di Borexino cambia lo sfondo soltanto ad ogni avvio di windows.
^^