Enfin fini
. J'avais un peu abandonné mais maintenant c'est opérationnel. C'est que le VBS c'est chaud quand on est pas habitué a la programmation orienté objet. Je vais en faire profiter tout le monde
.
Voila le code du VBScript un C/C dans votre editeur de texte préféré on enregistre sous "nomduscript.vbs"
Code:
On Error Resume Next
'------------------------------------------------
Function FileExt(fileName)
dim s, p
p=InStrRev(fileName,".")
s = mid(fileName,p)
s = LCase(s)
FileExt = s
End Function
'------------------------------------------------
Dim fso, dossier, element, collecFichier, s, shell, i
Set shell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
jcbCOM="jcb.tools"
TestCOMExists jcbCOM,"jcb.ocx"
set tools = wscript.CreateObject(jcbCOM,"event_")
curentVbs = WScript.ScriptFullName
p=InStrRev(curentVbs,"\")
curentDir = mid(curentVbs,1,p)
Set dossier = fso.GetFolder(curentDir)
Set collecFichier = dossier.Files
nbrFichier = collecFichier.count
Dim nomImg()
Redim nomImg(nbrFichier)
i = 0
For Each element in collecFichier
If FileExt(element.name) = ".jpg" OR FileExt(element.name) = ".bmp" OR FileExt(element.name) = ".png" THEN
nomImg(i)=element.name
i = i + 1
End If
Next
randomize()
nrbRand=Int(i * rnd())
FileName = curentDir & nomImg(nrbRand)
res=fso.FileExists(FileName)
If res Then tools.SetDesktop FileName
Wscript.quit
'--------------------------------------------------------------------
' Fonction de récupération du répertoire courant
Function GetPath()
Dim path
path = WScript.ScriptFullName
GetPath = Left(path, InStrRev(path, "\"))
End Function
'--------------------------------------------------------------------
Sub TestCOMExists(name,module)
' Vérification d'installation d'un objet COM
on error resume next
clef="HKCR\" & name & "\"
dummy = shell.RegRead(Clef)
if err.number<>0 then
' contrôle ActiveX non enregistré
pathmodule=getpath()& module
If not fso.fileExists(pathmodule) Then
Mess = "Le contrôle ActiveX " & name & " est requis." & VBCRLF
Mess=Mess & "Il est contenu dans le fichier " & module & VBCRLF
Mess=Mess & "Or ce fichier n'a pas été trouvé." & VBCRLF
MsgBox Mess, vbOKOnly + vbExclamation
wscript.quit
End If
err.clear
shell.Run "regsvr32.exe /s " & chr(34) & pathmodule & chr(34), SW_SHOWNORMAL,true
dummy = shell.RegRead("HKCR\" & name & "\")
if err.number<>0 then
Mess = "Le contrôle ActiveX " & name & " n'a pas pu être enregistré"
MsgBox Mess, vbExclamation
wscript.quit
end if
end if
End Sub
'--------------------------------------------------------------------
On télécharge un petit ActiveX ici
http://jc.bellamy.free.fr/download/vbs/jcb.ocx
On place les 2 deux fichier obtenu dans un dossier avec tous les bôôôô wallpapers.
On lance le script (double-clic dessus) et la magie sa change le fond d'ecran en choisisant aléatoirement dans les images du dossier ou ce trouve le script.
Attention deux, trois truc a savoir pour bien fair fonctionner le script:
*Les images pour le fond d'ecran doivent etre obligatoirement en .png, .jpg ou .bmp (je n'est pas encore essayer avec ce format)
*Toutes les images du dossier sont prise en compte.
*Si vous voulez que le wallpaper change a chaque demarage il faut mettre un racourcis qui pointe vers le script dans le dossier "Démarer > tous les prog > démarage"
*Au niveau du control activeX il doit obligatoirement ce trouver dans le meme dossier que le script.
*Toujours pour le controle activeX. La premiere fois que vous lancez le script, ce dernier va enregistrer le path du controle dans le registre. Si déplacez le script et le controle activeX apres l'avoir lancer une premiere fois. Le script ne marche plus. J'ai trouver un petit remede. Faites "demarer > executer > regedit". Une fois dans le registre : HKCR trouvez et suprimez "jcb.tools" et "jcb.Version". Réexecuter le script dans le nouveau repertoire, sa remarche.
Bon maintenant je passe aux remerciments :
tout d'abord Bubka qui m'a indiqué le site de Jc Bellamy. Et ensuite Jc bellamy qui a fait le controle activeX permetant le changement de wall a partir d'un VBS. Son site m'a aussi beaucoups servit pour apprendre ce language. Le site :
http://jc.bellamy.free.fr/
Si vous ne parvenez pas a faire fonctionner le script poster ici je peux essayer de vous aider.