[batch] changer de papier peint à chaque ouverture de session

changer de papier peint à chaque ouverture de session [batch] - Shell/Batch - Programmation

Marsh Posté le 10-01-2006 à 16:34:08    

Bonjour,
 
j'ai conçu un petit programme en batch, je m'en sert pour changer de papier peint à chaque ouverture de session de Windows Xp.
 
Si comme moi vous avez 253 photos des dernières vacances et que vous voulez en afficher une différente à chaque ouverture de session je vous ait conçu un petit programme en batch.
 
Commencez par ouvrir le blocnote, collez y (sans les numéros de ligne) le code suivant :
 

Code :
  1. @echo off
  2. if not exist %windir%\fonds goto :pas dossier
  3. cd %windir%\fonds
  4. if not exist tempo.txt echo ***liste des images déjà affichées***>tempo.txt
  5. :fic
  6. set nbfic=0
  7. for %%f in (*.bmp) do (
  8. set /a nbfic=nbfic+1
  9. find /c "%%f" tempo.txt>nul:
  10. if errorlevel 1 (
  11.  set fichier=%%f
  12.  echo %%f>>tempo.txt
  13.  goto :enreg
  14. )
  15. )
  16. if %nbfic%==0 goto :vide
  17. echo ***liste des images déjà affichées***>tempo.txt
  18. goto :fic
  19. :enreg
  20. reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /t REG_SZ /d 0 /f
  21. reg add "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d %windir%\fonds\%fichier% /f
  22. goto :fin
  23. :pas dossier
  24. echo Erreur : le repertoire contenant les fonds d ecrans n existe pas
  25. pause
  26. goto :fin
  27. :vide
  28. echo Erreur : le repertoire contenant les fonds d ecrans est vide de fichiers .bmp
  29. pause
  30. :fin


 
sauvegardez le fichier (par exemple fonds.bat)
 
les images qui seront affichées en fonds d'écrans doivent se trouver dans un dossier "fonds" dans le répertoire de windows (par exemple c:\windows\fonds) => créer un dossier fonds et y mettre vos images (au format .bmp)
 
Pour exécuter le script à chaque ouverture de session ( :
démarer->exécuter->gpedit.msc->configuration utilisateur->paramètres windows->Scripts (ouverture/fermeture de session)->ajouter->sélectionner fonds.bats->ok
 
fermez la session et ouvrez en une nouvelle pour voir le script en action
 
ps : le batch est simpliste je ne l'ai donc pas commenté, si vous rencontrez des problèmes de compréhension n'hésitez pas à le faire savoir :hello:


Message édité par frakass le 10-01-2006 à 16:41:54
Reply

Marsh Posté le 10-01-2006 à 16:34:08   

Reply

Marsh Posté le 10-01-2006 à 17:52:38    

C'est sympa de partager :)
 
Mais ça ne va pas fonctionner sous XP Home.
 
Je propose d'ajouter la commande de validation :

Code :
  1. RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True


à la fin de
:enreg
 
Ainsi, tu peux simplement l'appeler depuis le menu Démarrer -> Démarrage.
 
Sinon, une bonne habitude c'est d'initilialiser les variables localement (setlocal). De cette façon, on peut appeler le script depuis une invite de commandes sans modifier l'environnement en cours.

Reply

Marsh Posté le 05-08-2006 à 15:45:53    

wackevat a écrit :

C'est sympa de partager :)
 
Mais ça ne va pas fonctionner sous XP Home.
 
Je propose d'ajouter la commande de validation :

Code :
  1. RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True


à la fin de
:enreg
 
Ainsi, tu peux simplement l'appeler depuis le menu Démarrer -> Démarrage.
 
Sinon, une bonne habitude c'est d'initilialiser les variables localement (setlocal). De cette façon, on peut appeler le script depuis une invite de commandes sans modifier l'environnement en cours.


 
Salut, tu connais la commande de validation pour les variables d'environement ?
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed