Cómo jugar en su VBS

Resuelto
brice-eve Mensajes publicados 109 Estado Miembro -  
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:

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

  1. cs_PaTaTe Mensajes publicados 1471 Fecha de registro   Estado Colaborador Última intervención   503
     
    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]
    0
  2. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
     
    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
    0
    1. brice-eve Mensajes publicados 109 Estado Miembro 260
       
      gracias, ahora estoy probando
      0
    2. brice-eve Mensajes publicados 109 Estado Miembro 260
       
      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
      0
  3. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
     
    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
    0
    1. cs_PaTaTe Mensajes publicados 1471 Fecha de registro   Estado Colaborador Última intervención   503
       
      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.
      0
      1. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730 > cs_PaTaTe Mensajes publicados 1471 Fecha de registro   Estado Colaborador Última intervención  
         
        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
        0