How do I play a .wav file in a vbscript?

I have my vbscript working…now I just need it to play a wav file.

How do I do that? I have search and searched. Instead of “A Job is printing” I want it to play a .wav file. Please help. thanks.

Here is my script:

WARNING_THRESHOLD=0
Const PAUSETIME = 500
For i = 1 to 120000
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:” _
& “{impersonationLevel=impersonate}!\” & strComputer & “\root\cimv2”)
Set colPrintQueues = objWMIService.ExecQuery _
(“Select * from Win32_PerfFormattedData_Spooler_PrintQueue Where Name <> ‘_Total’”)
For Each objPrintQueue in colPrintQueues
If objPrintQueue.Jobs > WARNING_THRESHOLD Then
Wscript.Echo objPrintQueue.Name & “A Job is Printing!”
End If
NEXT
Wscript.Sleep PAUSETIME
Next



strWaveFile="C:\WINDOWS\Media\ding.wav"

Set objShell = CreateObject("Wscript.Shell")
objShell.Run "sndrec32 /play /close """ & strWaveFile & """",0,True
Set objShell = Nothing


Hey that works perfectly!

Just out of curiousity, is it possible to have VBscript tell the PC internal speaker to beep? Just wondering.

Matt




Set oShell = CreateObject("Wscript.Shell")

Beep 1, 0

Sub Beep (n, wait)

For i = 1 To n
     oShell.Run "%comspec% /c echo " & Chr(7), 0, False
     Wscript.Sleep wait*100
     Next
End Sub



Ok, great. I can play a wav file in my script.

Now they tell me they want the wav file to keep playing until someone at the computer tells it to stop.

Can that be done?

Thanks!

Matt

Not a VBScript method but…

You can try going a whole different route and using an HTML embed. Loop = “true” will make the sound play over and over.

<embed src=“your_wave_file.wav” autostart=“true” hidden=“true” loop=“true”>

You can then use JavaScript to allow the user to control the sound:
http://developer.irt.org/script/sound.htm

You might find it difficult though to make this work in all browsers.



Option Explicit

Dim strComputer, strTargetPrinter, strWaveFile, i, j, LoopVariable
Dim objWMIService, objPrintQueue, colPrintQueues, objShell
Const PAUSETIME = 500
strTargetPrinter = "MLOCAL2"
strWaveFile = "c:\statlabelsoundscript\buzzer.wav"
LoopVariable = 1
Do Until LoopVariable = 0

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPrintQueues =  objWMIService.ExecQuery _
    ("Select * from Win32_PerfFormattedData_Spooler_PrintQueue Where Name = '" & strTargetPrinter & "'")

For Each objPrintQueue in colPrintQueues
    If objPrintQueue.Jobs <> "0" Then
        Set objShell = CreateObject("Wscript.Shell")
        objShell.Run "sndrec32 /play /close """ & strWaveFile & """",0,True
        Set objShell = Nothing
    End if
Next
Wscript.Sleep PAUSETIME
LOOP


Any other ideas for how to make it play until someone hits OK or something?