Taskkill è corretto. Ma devi uccidere il processo riproducendo il file, non il file stesso. Capire il gestore registrato per i file mp3 da un prompt dei comandi sarà un po 'complicato.
Se lo sai, puoi uccidere quel processo.
Ecco uno script che capisce l'applicazione registrata per i file MP3 e uccide il compito:
@echo off
if not .%1==. goto show
:createtemp
set tempfile="%temp%\temp-%random%-%time:~6,5%.bat"
if exist %tempfile% goto :createtemp
reg query HKEY_CLASSES_ROOT\mp3file\shell\play\command\ > %tempfile%
for /F "skip=4 delims=> tokens=2 usebackq" %%e in (`type %tempfile%`) do call %0 %%e
del %tempfile% > nul
set tempfile=
set handler=
set teststring=
set offset=
set cmd=
goto end
:show
set handler=%2
set handler=%handler:~1,-1%
set /A offset=-1
:loop
set cmd=set teststring=%%handler:~%offset%%%
echo %cmd% > %tempfile%
call %tempfile%
if %teststring:~0,1%==\ goto complete
set /A offset=offset-1
goto loop
:complete
set /A offset=offset+1
set cmd=set handler=%%handler:~%offset%%%
echo %cmd% > %tempfile%
call %tempfile%
taskkill /IM %handler% > nul
:end
Se si salva questo come killmp3.bat
o qualcosa, si può chiamare quando vuoi. Ovviamente sii consapevole che se il programma era già in esecuzione, facendo qualcos'altro, sarebbe comunque chiuso.
Si noti che questo dipende in gran parte dalla voce nel Registro di sistema per avere il percorso eseguibile tra virgolette doppie. Se non lo hai e ci sono spazi nel nome dell'eseguibile, fallirà.
Si potrebbe generalizzare la mia tecnica per essere in grado di passare a l'estensione del file (come ad esempio .mp3
, che si potrebbe cercare nel Registro di sistema per trovare il nome della classe mp3file
e poi trovare il gestore da lì.
A una soluzione più generica che prende il nome del file che hai iniziato e ne calcola l'estensione è teoricamente possibile ma molto più difficile: nel caso di notepad
devi capire che cosa è cercando il percorso per tutti i file eseguibili, ecc.
Questo potrebbe essere più semplice se si crea un file mp3 estremamente breve che è possibile avviare. ding sul programma, potrebbe interrompere la riproduzione del file corrente e passare a quello nuovo, che finirebbe quasi istantaneamente ed efficacemente interrompere la riproduzione.
Niko quale versione di Windows è in esecuzione? – ErikE