I've seen a cfew threads that say how to play music with the play minimized when it starts with start /min
, as well as one that creates a VBS script to run the audio minimized. But no matter which way I try to get audio to run minimized, it appears on screen.
Also, if I try start /min
or start /max
I'll get the same result.
Does anyone know how I can get something to start minimized?
The Windows Media Player can run from the command line or a batch file to play sound files. To ensure audio files are played using this application, you need to include the "wmplayer" after the start command.
To play an audio file, click File, select Open, and browse to the location of the file. Or, you can drag the file to the RealPlayer window. You can also double-click the file to start playing the file immediately. However, if the audio file is associated with a different program, it may not open in RealPlayer.
Obviously very late for the asker of the question but who knows? Someone else may look by. So I'll just reiterate Tony BD's answer from April '14, and since someone complained about it being a code only answer I'll add a little explanation and really very little is required.
1.) Open Windows Notepad
2.) Copy Tony BD's code into Notepad
3.) Substitute 'Your file location here' with the full path to the music file you want to play.
4.) In Notepad menu choose File|Save as . .
5.) Choose a location and give the file a name but ensure that instead of the standard .txt file type you give it a .vbs ending.
6.) Close Notepad
7.) Click on the vbs file you just made and your music file will start to play showing absolutely nothing on the screen.
The 0 parameter in the code enables WMP to open in an invisible window. If you change the 0 to a 1 you will see WMP's graphical interface.
Obviously this is only available for Windows users but for them it's the best and simplest solution to the problem.
This is an all in one solution for playing sound files in a batch program while keeping everything hidden, with the innate capacity to stop the music when the cmd window is closed. Utilizes vbs scripts and secondary batch programs, each created from the initial script.
It uses similar approaches to other answers regarding the use of vbs to play music with controlled settings.
@ECHO OFF & CD "%~dp0"
Set "ProgDir=%~dp0"
If not exist "%ProgDir%Sounds" MD "%ProgDir%Sounds"
Set "Sounds=%ProgDir%Sounds"
Set "Player=%Sounds%\BatchMusicPlayer.bat"
Set "MusicStopper=%Sounds%\StopMusic.bat"
Set "Monitor=%Sounds%\BatchMonitor.vbs"
If not Exist "%Player%" Call :makeplayer
If not Exist "%MusicStopper%" Call :makestopper
If not Exist "%Monitor%" Call :makemonitor
Start "" "%Monitor%"
:main
REM play directly by calling this batch using these parameters: <full track path> <vol 0-100> <Loop true / false>
If not "%~3"=="" If Exist "%~1" (
For %%A in (true false) do If /I "%%A" == "%~3" (
Call "%Player%" "%~1" %~2 %~3
Exit /B
)
)
REM autoplay any song or sound dropped on the batch or when called without additional parameters.
If Exist "%~1" If "%~2"=="" (Set "track=%~1" & Set "vol=80" & Set "Loop_TF=false" & Goto :Launch)
REM manually enter trackpath, volume and true / false value for repeating sound.
)
cls
Set track=
Set /p "track=[Full track path :>"
IF NOT DEFINED track Goto :main
For %%A in (quit q exit e killmusic stop) do IF /I "%track%" == "%%A" Goto :end
IF /I NOT EXIST "%track%" Goto :main
:volume
set vol=
Set /p "vol=[Volume :>"
For %%A in ("%vol%") do (
For %%B in (q quit e exit c cancel s stop) do IF /I "%%~A" == "%%B" Goto :main
For /L %%C in (1,1,100) do If "%%~A"=="%%C" Goto :repeat
)
Goto :volume
:repeat
Set Loop_TF=
Set /p "Loop_TF=[Repeat ('true' or 'false') :>"
IF NOT DEFINED Loop_TF Goto repeat
For %%A in ("%Loop_TF%") do (
For %%B in (true false) do IF /I "%%~A" == "%%B" Goto :Launch
For %%C in (q quit e exit c cancel s stop) do IF /I "%%~A" == "%%C" Goto :main
)
Goto :repeat
:Launch
CALL "%player%" "%track%" %vol% %Loop_TF%
REM Exit /B
pause
Goto :main
:makeplayer
(
Echo.@ECHO OFF
Echo.Set "MusicPath=%%~1"
Echo.Set "vol=%%~2"
Echo.Set "Loop_TF=%%~3"
REM Change to the Directory you want to create the Music Launcher in.
Echo.PUSHD %%sounds%%
REM Ensure no Conflict with the Previous Script.
Echo.IF exist PlayMusic.vbs ^(
Echo.DEL PlayMusic.vbs
Echo.^)
REM Creates a vbs Script to Launch the music (Occurs without any visual indication or prompting)
Echo.^( echo Set Sound = CreateObject^("WMPlayer.OCX.7"^^^)
Echo.echo Sound.URL = "%%MusicPath%%"
Echo.echo Sound.settings.volume = %%vol%%
Echo.echo Sound.settings.setMode "loop", %%Loop_TF%%
Echo.echo Sound.Controls.play
Echo.echo While Sound.playState ^^^<^^^> 1
Echo.echo WScript.Sleep 100
Echo.echo Wend
Echo.^)^>PlayMusic.vbs
Echo.start /min PlayMusic.vbs
::: Return to the Previous Directory
Echo.POPD
::: Exit the Launcher and return to Previous batch program.
Echo.Goto :EOF
)>%Player%
Exit /B
:makemonitor
(
ECHO Set objWMIService = GetObject ("winmgmts:"^)
ECHO Set proc = objWMIService.ExecQuery("select * from Win32_Process Where Name='cmd.exe'"^)
ECHO DO while proc.count ^> 0
ECHO Set proc = objWMIService.ExecQuery("select * from Win32_Process Where Name='cmd.exe'"^)
ECHO if proc.count ^< 1 then exit do
ECHO wscript.sleep 1500
ECHO loop
ECHO Set WshShell=createobject("wscript.shell"^)
ECHO WshShell.run "%MusicStopper%", 0, true
)>"%Monitor%"
Exit /B
:makestopper
(
Echo.@ECHO OFF
Echo.taskkill /pid WScript.exe /f /t ^>nul
Echo.Goto :EOF
)>%MusicStopper%
Exit /B
:end
exit
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With