Archives par mot-clé : registre

Modifier son fond d’écran.bmp sous windows via un script batch

Aujourd’hui nous allons voir comment modifier simplement le fond d’écran du système d’exploitation de la firme de Redmond à l’aide d’un petit script. Pourquoi faire un script me direz vous si on peut passer par un « clic droit sur le Bureau > apparence > choisir son fond d’écran » ou par un «clic droit sur l’image souhaité > définir en tant que papier peint de bureau », je vous répondrai, « parce qu’on peut » ou « juste pour le sport » ou bien « parce que c’est plus rapide pour des taches automatisées ». Bon fini l’introduction, passons à la méthode. Une des première chose que j’ai faite est donc une petite recherche sur un moteur de recherche, il est rapidement tombé que la pierre angulaire de notre script allait être la modification de la clé de registre

HKCU\Control Panel\Desktop\Wallpaper

oui c’est déjà un début, mais très rapidement, on bute sur « Ça marche pas avec un png ou un jpeg, ou même la plupart des images» en fait si on veut que ça fonctionne, il nous faut une image au format bitmap soit avec l’extension .bmp. Un pas de plus vers la solution se profile, mais windows étant ce qu’il est, il est bon de s’armer de patience. Et pour lui dire qu’on a changé quelque chose dans la base de registre il est bon d’insister par la commande

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

qui permettra magiquement de faire apparaitre notre nouveau fond d’écran… ou pas. En effet à ce moment là de ma recherche je travaille exclusivement avec des bmp, mais alors que la commande fonctionne sur certains fichiers, d’autres refusent catégoriquement de s’afficher sur mon écran. Ô désespoir ! Heureusement porté par une envie irrésistible de réussir, je tente une méthode passant par un petit peu de code C++, mais là le même problème que précédemment ce pose. Que faire ! Après encore quelques recherches qui termineront cette quête avec succès je l’espère, il s’avère que les bitmaps gérés par windows, ne sont pas à prendre à la légère. En effet, lorsque j’ai dis, à un moment de ma progression, que je travaillait exclusivement avec du bitmap, ces fichiers était en fait des images de mon cru, originellement des png que j’avais converti en bmp… et la clé résidait donc dans cet export. Je vous décris donc les deux paramètres nécessaires lors de l’export fructueux d’un bitmap à l’attention de windows, à l’aide du logiciel très connu Gimp :

– le NON stockage des informations relative à l’espacement de couleurs ?

– le stockage de l’image au format 24 bits.

boite de dialogue des options avancés pour l'export de fichier bitmat sous gimp
boite de dialogue des options avancés pour l’export de fichier bitmap sous gimp

Je vous laisse le soin d’adapter les réglages à votre propre logiciel de dessin, en espérant qu’il n’y ai pas d’autres embûches sur notre chemin.

En résumé pour changer son fond d’écran via un script batch sous windows

1 – Préparer une image bitmap, enregistrée de la bonne manière (24 bits, sans informations d’espacement de couleurs)

2 – Créer un fichier .bat contenant les lignes


reg add "HKCU\Control Panel\Desktop" /v Wallpaper /d "C:\Chemin\de\l\image.bmp" /F
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True

3 – Adapter le script à vos besoins… comme par exemple jouer avec la clé TileWallpaper pour centrer, étirer ou utiliser le mode mosaïque d’affichage à l’écran