Cómo jugar en su VBS
Resuelto
brice-eve
Mensajes publicados
109
Estado
Miembro
-
cs_Le Pivert Mensajes publicados 8437 Estado Colaborador -
cs_Le Pivert Mensajes publicados 8437 Estado Colaborador -
Hola,
desde hace poco me he puesto a desarrollar un programa en .vbs
en este programa quiero reproducir una música que se iniciará cuando el programa se inicie, solo que ...
he buscado por todas partes en internet, encontré algunos códigos como:
pero no funcionan.
más tarde aprendí que sndrec32 ya no existe a partir de Windows Vista, así que seguí buscando otro código para reproducir sonido pero imposible de encontrar.
gracias de antemano por vuestra valiosa ayuda
desde hace poco me he puesto a desarrollar un programa en .vbs
en este programa quiero reproducir una música que se iniciará cuando el programa se inicie, solo que ...
he buscado por todas partes en internet, encontré algunos códigos como:
strSoundFile = "C:\Users\fichiers_test\"
Set objShell = CreateObject("Wscript.Shell")
strCommand = "sndrec32 /play /close " & chr(34) & strSoundFile & chr(34)
objShell.Run strCommand, 0, True
pero no funcionan.
más tarde aprendí que sndrec32 ya no existe a partir de Windows Vista, así que seguí buscando otro código para reproducir sonido pero imposible de encontrar.
gracias de antemano por vuestra valiosa ayuda
3 respuestas
-
Funcionaba bajo Vista pero ya no
Personalmente, usaría un reproductor de música externo (en línea de comandos) como ffplay o mplayer
--
[PaTaTe] -
Hola,
Ver este programa:
en cambiando esta línea y poniendo la ruta del archivo de audio
Call Play(DJBuzzRadio)
Call Play (Chemin audio)
lo hice, funciona muy bien para mp3, wav y wma
--
@+ El Pivert-
-
Rehola, entonces probé tu programa pero no funciona; sin embargo logré encontrar la solución yo solo:
Dim oPlayer
Set oPlayer = CreateObject("WMPlayer.OCX")
oPlayer.URL = "chemain d'acces"
oPlayer.controls.play
While oPlayer.playState <> 1 ' 1 = Stopped
WScript.Sleep 100
Wend
oPlayer.close
ahí va, gracias por vuestra ayuda
-
-
El programa que indiqué funciona muy bien.
La prueba, aquí está el programa modificado por mis manos que permite elegir un archivo de audio y detenerlo a demanda:
pero he conseguido encontrar la solución yo solo :
se advierte que tu código se parece extrañamente a
Sub Play(URL)
Dim Chemin Call AskQuestion() '***************************************************************************** Sub Play(URL) Dim Sound Set Sound = CreateObject("WMPlayer.OCX") Sound.URL = URL Sound.settings.volume = 100 Sound.Controls.play do while Sound.currentmedia.duration = 0 wscript.sleep 100 loop wscript.sleep (int(Sound.currentmedia.duration)+1)*1000 End Sub Sub AskQuestion() Dim Question,MsgFR MsgFR = "Voulez-vous ouvrir un fichier audio?" & vbcr & "Oui = Pour écouter" & vbcr & "Non = Pour arrêter" & vbcr & String(50,"*") Question = MsgBox(MsgFR,vbYesNO+vbQuestion+vbSystemModal,Title) If Question = VbYes Then Call chercher()'chercher le fichier audio Call Play (Chemin)'jouer End If If Question = VbYes Then MsgBox "Il y a une autre instance en cours d'exécution !" WScript.Quit() End If If Question = VbNo Then Call Kill("wscript.exe") End If If Question = VbNo Then Call Kill("wscript.exe") End If End Sub apos;***************************************************************************** 'Fonction pour ajouter les doubles quotes dans une variable Function DblQuote(Str) DblQuote = Chr(34) & Str & Chr(34) End Function apos;****************************************************************************** Function CommandLineLike(ProcessPath) ProcessPath = Replace(ProcessPath, "\", "\\") CommandLineLike = "'%" & ProcessPath & "%'" End Function apos;****************************************************************************** Sub Kill(MyProcess) Dim Titre,colItems,objItem,Processus,Question Titre = " Processus "& DblQuote(MyProcess) &" en cours d'exécution " Set colItems = GetObject("winmgmts:").ExecQuery("Select * from Win32_Process " _ & "Where Name like apos;%"& MyProcess &"%' AND commandline like " & CommandLineLike(WScript.ScriptFullName) & "",,48) For Each objItem in colItems objItem.Terminate(0)' Tuer ce processus Next End Sub apos;****************************************************************************** Sub chercher() sIniDir = "C:\Windows\*" sFilter = "Fichier MP3 (*.mp3)|*mp3|Fichier Wave(*.wav)|*wav|Fichier WMA(*.wma)|*wma|" sTitle = "GetFileDlg by omen999 2014 - http://omen999.developpez.com" rep = GetFileDlgEx(Replace(sIniDir,"\","\\"),sFilter,sTitle) Chemin=rep & vbcrlf & Len(rep) Chemin= left(Chemin , len(Chemin)-2) 'Chemin=InputBox("Copiez pour mettre le chemin dans le presse-papier", "Chercher chemin fichier", Chemin) End Sub Function GetFileDlgEx(sIniDir,sFilter,sTitle) Set oDlg = CreateObject("WScript.Shell").Exec("mshta.exe ""about:<object id=d classid=clsid:3050f4e1-98b5-11cf-bb82-00aa00bdce0b></object><script>moveTo(0,-9999);eval(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(0).Read("&Len(sIniDir)+Len(sFilter)+Len(sTitle)+41&"));function window.onload(){var p=/[^\0]*/;new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(p.exec(d.object.openfiledlg(iniDir,null,filter,title)));close();}</script><hta:application showintaskbar=no />""") oDlg.StdIn.Write "var iniDir='" & sIniDir & "';var filter='" & sFilter & "';var title='" & sTitle & "';" GetFileDlgEx = oDlg.StdOut.ReadAll End Function
--
@+ Le Pivert-
Extraño, la etiqueta de código no funciona cuando se muestra la publicación en Chrome Android ; En Windows no hay problema.
EDIT : No había error en el código, era un problema de copiar/pegar, lo siento :)
Por otro lado, para el directorio de inicialización, hay que evitar a toda costa poner rutas en duro. Aquí C:\Windows. ese directorio no existe ^^ Mejor usar la caja de diálogo que invita al usuario a elegir su directorio.- Hola PATATA
Es mejor usar el cuadro de diálogo que invita al usuario a elegir su directorio.
Es lo que hace el código, abre un openfiledialog. Puse esa ruta al inicio de la búsqueda. Puedes quitarla y estarás en el último archivo abierto. Si no, la personalizas. Somos un foro de desarrolladores, por lo que puedes adaptarlo, este foro está hecho para eso, ¿no?
Salud
Bonne semana (Bon WE)
@+ Le Pivert
-