Changer fond d'ecran

Signaler
Messages postés
5
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 mars 2007
-
Messages postés
5
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 mars 2007
-
Bonjour,
Je débute en VBS et j'aimerais savoir si qq1 a deja realisé un script pour changer un fond d'écran sous windows XP Pro, est ce faisable en VBS ?
Merci
Eiao

9 réponses

Messages postés
168
Date d'inscription
vendredi 9 janvier 2004
Statut
Membre
Dernière intervention
28 juillet 2009
1
Voici l'API

Private Const SPI_SETDESKWALLPAPER = 20
Public Const SPIF_SENDWININICHANGE = &H2
Public Const SPIF_UPDATEINIFILE = &H1

Private Declare Function SystemParametersInfoWallpaper Lib "user32" Alias "SystemParametersInfoA" _
   (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long

Et comment l'utiliser

Call SystemParametersInfoWallpaper(SPI_SETDESKWALLPAPER, 0&, sFileName, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)

Christophe
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
23
De quoi parles-tu ?
du papier-peint ou du motif ?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
salut
http://www.vbfrance.com/listecodes.aspx?catid=36

++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
5
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 mars 2007

Je voudrais changer le papier peint avec un script qui se lance au démarrage (en ligne de commande) pour mettre un papier peint de mon choix. Est ce que c'est faisable en vbs ?
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
25
 Bonjour,

Exemple pour changer le Wallpaper.

NewWallPaper = "D:\jean-marc.bmp"
Set WshShell = CreateObject("WScript.Shell")

MsgBox WshShell.RegRead("HKEY_CURRENT_USER\Control Panel\desktop\Wallpaper")


WshShell.RegWrite "HKEY_CURRENT_USER\Control Panel\desktop\Wallpaper", NewWallPaper
Set WshShell = Nothing

jean-marc
Messages postés
5
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 mars 2007

bonjour JMarc,

Merci pour l'exemple, mais je cherche du coté de l'API, parce que le pb avec les clés BDR (du moins quand je fais les modifs à la main), c'est que le changement n'est pris en compte qu'à la reconnexion, je voudrais qu'il soit immédiat, comme avec la commande " Etablir en tant que papier peint".
Le VBS permet il ce genre d'appel aux fonctions API ?
Merci
Eiao
Messages postés
5
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 mars 2007

Merci Christophe,
Je vais tester tout ça, je te tiendrai au courant, j'espère que ça va marcher.

Eiao
Messages postés
168
Date d'inscription
vendredi 9 janvier 2004
Statut
Membre
Dernière intervention
28 juillet 2009
1
Oups, ce n'est que maintenant que je lis que c'était un code VBS que tu voulais.   Sorry.

Les API de Windows ne sont (à ma connaissance) pas accessibles via VBS mais bien via VB.    Ce que tu pourrais faire, ce serait de développer une petite DLL VB avec une fonction publique qui te permettrait via un code VBS de changer le wallpaper.

Je suis à 100% certain que cela fonctionnera.

Christophe
Messages postés
5
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 mars 2007

Bonjour,
Il y a bien longtemps je faisais un peu de VB, mais je n'ai plus le temps de m'y remettre.... Par contre, pour info, j'ai trouvé sur le net une fonction accessible en VBS qui couplée à une modif de la bdr, permet de changer le fonds d'écran par unpetit script tout simple (ce que je cherchais pour intégrer dans un script de login ).
------------------------------------------------------------
Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")


sWinDir = oFSO.GetSpecialFolder(0)
sWallPaper = sWinDir & "\BGINFO.BMP"


' update in registry
oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sWallPaper


' let the system know about the change
oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters",   1, True


------------------------------------------------------------

Merci encore d'avoir pris le temps de me répondre.

Eiao