I have a high pitch "tada.wav" file that I'd like Windows to play in the background whenever I call it in my batch file.
I want the file to play without opening any window or launching an application ... just like the default way Windows plays "you-got-mail.wav" or "chimes.wav" or other files in C:\Windows\Media
Thank you.
Playing a .wav file in the background
Moderator: DosItHelp
Re: Playing a .wav file in the background
The following script creates a vbs script to do such.
Only tested on windows 10, assumes the default windows media player is installed.
Note: I use this as part of a library that also includes a vbs monitor of the CMD process to call a cleanup script to ensure music played on a loop is closed when the cmd console is closed.
An example of this in use and a link to the libray it's included in can be found here: https://www.youtube.com/watch?v=Wi3izdqbwcw
Only tested on windows 10, assumes the default windows media player is installed.
Code: Select all
::: Author: T3RRY Name: PlayMusic.bat
::: [ creates a companion vbs file that's called with arguments For trackpath, volume and loop t/f values
::: Parameters required For Player: [filepath.ext] [0-100] [1{True}0-{False}]
@ECHO OFF
If "%~1" == "" (
Echo %~n0 Usage:
Echo/Call "%~nx0" "filepath.ext" 0-100 1^|0
Echo/Arg 3: 1^|0 flags loop true/false respectively
pause
Exit /B
)
If Not exist "%~1" (
Cls
Echo/Track "%~1" Not found
Pause
Exit
)
Set "MusicPath=%~1"
For %%T in ("%~1")Do Set "trackname=%~n1"
Set /A vol=Loop_TF=0
Set /A "vol+=%~2 + 0" 2> nul
::: Defaults to no loop if no 3rd Arg
Set /A "Loop_TF=%~3 + 0" 2> nul
Setlocal EnableDelayedExpansion
IF Not !Vol! GTR 0 ( Cls & Echo/Invalid "%~2" - Integer GTR 0 LEQ 100 required for arg %%2 ; Volume & Pause & Exit)
IF Not !Vol! LEQ 100 (Cls & Echo/Invalid "%~2" - Integer GTR 0 LEQ 100 required for arg %%2 ; Volume & Pause & Exit)
IF !Loop_TF! GTR 1 (Cls & Echo/Invalid "%~3" - Integer 0 or 1 required for arg %%3 ; Loop True / False & Pause & Exit)
Endlocal
::: - Change to the Directory the script and sound files are in.
PUSHD "%~dp0"
::: - Creates a vbs Script to Launch the music (Occurs without any visual indication or prompting)
If not exist "Play_%trackname%.vbs" (
>"Play_%trackname%.vbs" (
echo Set Sound = CreateObject^("WMPlayer.OCX.7"^)
echo Sound.URL = "%MusicPath%"
echo Sound.settings.volume = %vol%
echo Sound.settings.setMode "loop", %Loop_TF%
echo Sound.Controls.play
echo While Sound.playState ^<^> 1
echo WScript.Sleep 100
echo Wend
)
)
start /min "" "Play_%trackname%.vbs"
POPD
An example of this in use and a link to the libray it's included in can be found here: https://www.youtube.com/watch?v=Wi3izdqbwcw
Re: Playing a .wav file in the background
At one point back in the day when I had some free passes to COMDEX in Atlanta right at around the time Win95 was released, myself and 2x friends unleashed a script at the Microsoft booth that after 30 minutes would play the 'start me up' song and then change the boot image to windows F***ing 95 and reboot automatically after 10 minutes. We never saw the results of it as we injected our creation and left, but I'm sure it must have had those ditsy interns (aka models) in a panic, lol.
Anyways, today such an activity is pretty easy thanks to ole and the start command. The following should do what you want:
Anyways, today such an activity is pretty easy thanks to ole and the start command. The following should do what you want:
Code: Select all
START /MIN C:\Windows\Media\chimes.wav
Re: Playing a .wav file in the background
SPEAK.BAT wraps quite some functionality of the Speech API, which includes playing wave files:
viewtopic.php?p=60894
Steffen
viewtopic.php?p=60894
Steffen