whitef2

sound ausgeben - wait - schliessen (CMDBatch - VBS)

hi, ich möchte gerne für meinen FTP-Server die Events nutzen, d.h. ne externe datei soll aufgerufen werden.

Ich hab ne wav-datei, die dann abgespielt werden soll.
Wait.exe habe ich miteingebunden, für einen waitbefehl.

so sieht meine bat-datei aus:
Start C:\Programme\VideoLAN\VLC\vlc.exe "C:\Program Files\- x -\FTP-Events\Online\Online.wav"  
WAIT 3 KEY
taskkill /f /im vlc.exe

problem is nur dass die dosbox mitaufgeht und der vlc player.
deshalb hab ich weiter geforscht und mich mal mit vbs probiert:

Set WshShell = WScript.CreateObject("WScript.Shell")  
WshShell.Run """Online\Online.bat""", 0, True  
Set WshShell = Nothing
Set WshShell = WScript.CreateObject("WScript.Shell")  
WshShell.Run """Online\Close.bat""", 0, True  
Set WshShell = Nothing

Online.bat:
Start C:\Programme\VideoLAN\VLC\vlc.exe "C:\Program Files\- x -\FTP-Events\Online\Online.wav"  

Close.bat:
WAIT 3 KEY
taskkill /f /im vlc.exe

Problem dabei is jetzt nur, das man den vlc player sieht bzw. den Focus hat.

Weiss jemand Rat?
Am liebsten wäre mir auch nur eine VBS datei ohne zugriffe auf Bat dateien...

zuviel verschachtelungen sind ja nicht immer so übersichtlich.

mfg
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 97440

Url: https://administrator.de/forum/sound-ausgeben-wait-schliessen-cmdbatch-vbs-97440.html

Ausgedruckt am: 25.04.2025 um 17:04 Uhr

bastla
bastla 21.09.2008 um 16:00:48 Uhr
Goto Top
Hallo whiteF2 und willkommen im Forum!

Wenn's tatsächlich nur .wav-Files sein sollen, sieh Dir einmal diesen "Scripting Guy"-Artikel an ...

Ansonsten könntest Du zumindest mit dem Parameter 7 anstelle von 0 beim "Run" in einem VBScript das Programmfenster des aufgerufenen Programmes minimieren, wie etwa in dieser Variante:
WScript.CreateObject("WScript.Shell").Run "rundll32.exe %WINDIR%\System32\msdxm.ocx,RunDll /play /close ""D:\Sound\Nur ein Test.mp3""", 7, True  

Grüße
bastla
whiteF2
whiteF2 21.09.2008 um 22:15:18 Uhr
Goto Top
mh, ging nur einmal, wenn ich das nochmal öffne/teste dann kommt folgender fehler:

RunDLL
Fehler in ...system32\msdxm.ocx
Folgender Eintrag fehlt:RunDLL
bastla
bastla 22.09.2008 um 07:11:59 Uhr
Goto Top
Hallo whiteF2!

Abgesehen davon, dass ich das Problem nicht nachvollziehen konnte, würde mir ohnehin die im verlinkten Artikel gezeigte Vorgangsweise eher zusagen ...

Grüße
bastla
Biber
Biber 22.09.2008 um 07:55:04 Uhr
Goto Top
@bastla
FULL ACK, wie der Lateiner sagt....

und um Dir, whiteF2, die von den Scripting Guys angegebene sndrec32 ein bissi schmackhafter zu machen, steuere ich einen weiteren undokumentierten Parameter bei, der alles noch einfacher macht.

Bitte teste am CMD-Prompt folgenden Aufruf
sndrec32 /play /close /embedding "c:\WINDOWS\Media\Windows XP-Benachrichtigung.wav"  
[...ggf. natürlich mit einer bei Dir existierenden *.wav-Datei]

Durch den /embedding-Parameter wird jegliches UI unterdrückt, das Programm verhält sich wie meine neue Wohnungsnachbarin (nicht zu sehen, aber deutlich zu hören).

Ein wartbarer Mehrzeiler analog bastlas Vorlage bzw. den ScriptingGuys wäre dann:
strSoundFile = "c:\WINDOWS\Media\Windows XP-Benachrichtigung.wav"  
strCmd ="sndrec32 /play /close /embedding " & chr(34) &  strSoundFile & chr(34)  
WScript.CreateObject("WScript.Shell").Run strcmd, 0, true   

Grüße
Biber
whiteF2
whiteF2 22.09.2008 um 20:42:03 Uhr
Goto Top
geht net.... sollte ich dazu erwähnen dass ich VISTA (32b) hab??

mfg

;)
bastla
bastla 22.09.2008 um 21:05:05 Uhr
Goto Top
Hallo whiteF2!

geht net....
Na, das ist ja wenigstens einmal eine aussagekräftige Fehlerbeschreibung ...
sollte ich dazu erwähnen dass ich VISTA (32b) hab??
Aber nein, wozu denn?
Wie sieht's aus, wenn Du anstelle von "sndrec32" "SoundRecorder" verwendest?

Grüße
bastla
whiteF2
whiteF2 23.09.2008 um 22:26:36 Uhr
Goto Top
mh, jetzt minimiert sich nur der Ordner in dem sich meine test.vbs mit obigen inhalt!

:D :D :D

oh man, ich glaub ich bastel mir mit delphi lieber ne mini exe... :D