question relative à la procédure en .vbs
Bonjour Patrick,
J'ai découvert votre proposition en .VBS pour pouvoir lire en fichier son depuis une procédure VBA.
Débutant dans le domaine j'essaie de saisir le fonctionnement; Il y a une partie qui m'échappe et qui, à priori, semble essentielle pour l'exécution de la lecture du fichier audio :
"code = code & "While wmp.playstate <> 1" & vbCrLf
code = code & "WScript.Sleep 1" & vbCrLf
code = code & "Wend" & vbCrLf"
Ce que je comprends c'est que l'on dit "tant que l'état de lecture de windows media player n'est pas en mode arrêt, on met l'exécution du .VBS en pause d'une milliseconde";
Ce que je remarque, lorsque j'ôte cette partie du code, c'est que plus rien ne fonctionne. Mais je ne comprends pas par quel biais cette condition while rend l'exécution du fichier audio possible.
Pourriez-vous m'éclairer svp ? :)
Ca m'aiderait beaucoup
En vous remerciant
Citation:
Envoyé par
patricktoulon
Bonsoir
perso afin de libérer l'application pendant la lecture du son je la li extérieurement a l'aide d'un fichier VBS utilisant l'ocx WMP classic que l'on ne peut plus utiliser en VBA
je créé donc le vbs et le lance par VBA il se détruit après lecture automatiquement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Sub test()
son = "H:\mes musique\Amy Mc Donald\Lets Start A Band - Amy Mc Donald - Album 2008\Amy Mc Donald - Lets Start A Band.mp3"
joue_le_son son
End Sub
Function joue_le_son(son)
code = code & "fichier= Wscript.ScriptFullName" & vbCrLf
code = code & " Set wmp = CreateObject(""WMPlayer.OCX"")" & vbCrLf
code = code & "wmp.settings.autoStart = True" & vbCrLf
code = code & "wmp.settings.volume = 100" & vbCrLf
code = code & "wmp.URL = """ & son & """" & vbCrLf
code = code & "While wmp.Playstate <> 1" & vbCrLf
code = code & "WScript.Sleep 1" & vbCrLf
code = code & "Wend" & vbCrLf
code = code & "Set fso = CreateObject(""Scripting.FileSystemObject"")" & vbCrLf
code = code & "fso.DeleteFile (fichier)" & vbCrLf
code = code & "Set fso = Nothing" & vbCrLf
fichier = ThisWorkbook.Path & "\jouer le son.vbs"
x = FreeFile
Open fichier For Output As #x
Print #x, code
Close #x
Set w = CreateObject("Wscript.shell")
w.Run """" & fichier & """"
End Function |
voila
question relative à la procédure en .vbs
Hello Jurrassic Pork
Merci pour ta réponse
. Hélas oui mais ça répondais à mes recherches ^^; de plus vous proposez pas mal de solutions différentes, ce post est très intéressant.
J'ai bien décortiqué celle de M. Toulon; mais je ne comprends toujours pas pourquoi dans le fichier .VBS il y a ce While et cette mise en pause de l'exécution du script avec le .sleep
C'est ça, en revanche, qui permet de déclencher la lecture apparemment .. :/
J'ai commencé à étudier ta proposition mais là bon .. eh bien il ya plein de concepts que je ne connais pas encore; notamment mciSendString, les définitions de variables avec ByVal ..
Bon je prends le temps de regarder tout ça et faire quelques recherches, afin de voir ce que je peux parvenir à comprendre de moi-même et je reviens avec mes questions :)