Не могу остановить VBScript в командном файле - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь остановить воспроизведение определенного музыкального файла в фоновом режиме, чтобы начать воспроизведение другого, но не могу найти решение этой проблемы. Вот код, который я использую:

set "file=airraid.wav"
( echo Set sound = CreateObject("WMPlayer.OCX.7"^)
  echo Sound.URL = "%file%"
  echo Sound.Controls.play
  echo do while Sound.currentmedia.duration = 0
  echo wscript.sleep 21
  echo loop
  echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs
start /B cscript //nologo sound.vbs

1 Ответ

0 голосов
/ 21 октября 2019

Вы можете остановить музыку, убив cscript процесс, используя команду Taskkil

Вот пример для проверки:

@echo off
Title Playing Music in the background and change it
Set "URL_Music1=http://94.23.221.158:9197/stream"
Set "URL_Music2=http://www.chocradios.ch/djbuzzradio_windows.mp3.asx"
Rem :: Here we start cscript minimized to play music with URL as argument
Call :Play "%URL_Music1%"
Tracert.exe www.codereview.stackexchange.com
Call :StopMusic
::Rem We play another music
Call :Play "%URL_Music2%"
Tracert.exe www.google.com
Call :StopMusic
Pause & Exit
::**************************************************************
:Play
(
echo Play "%~1"
echo Sub Play(URL^)
echo    Dim Sound
echo    Set Sound = CreateObject("WMPlayer.OCX"^)
echo    Sound.URL = URL
echo    Sound.settings.volume = 100
echo    Sound.Controls.play
echo    do while Sound.currentmedia.duration = 0
echo        wscript.sleep 100
echo    loop
echo    wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000
echo End Sub
)>"%Temp%\%~n0.vbs"
Start "Play Music" /Min cscript.exe //nologo "%Temp%\%~n0.vbs"
exit /b
::**************************************************************
:StopMusic
Taskkill /F /IM "cscript.exe">nul 2>&1
Exit /b 
::**************************************************************
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...