出现 msgbox 时从 VBScript 中播放声音文件
Play sound file from within VBScript when msgbox appears
当某个消息框出现时,我正在尝试从 VBScript 中播放声音文件。唯一的问题是我将把它发送到别处,而接收它的人将不会与我要播放的音频文件具有相同的路径名。我正在考虑将所有我想使用的声音文件放在与脚本相同的文件夹中,然后发送该文件夹,但我不知道如何确保声音文件能够播放。
所以我想最大的问题是如何概括路径名,以便任何人都可以从任何机器的脚本中听到文件。
到目前为止,这是我的代码:
if intAnswer3 = vbyes then
strSoundFile = "C:\pathname"
Set objShell = CreateObject("Wscript.Shell")
strCommand = "sndrec32 /play /close " & chr(34) & strSoundFile & chr(34)
objShell.Run strCommand, 0, True
你的意思是这样的吗:
描述:
此 Vbscript "PlayListSongs.vbs" 扫描文件夹及其子文件夹中的歌曲,并在文本文件中创建播放列表以便在后台播放。
更新: 我添加了另一个 vbscript 来停止并终止 "wscript.exe" 进程以停止后台播放音乐.
我添加了另一个 vbscript 以在前台使用 Windows Media Player 播放播放列表。
总之你可以找到zip 3 vbscript
1- 在后台播放播放列表。
2- 停止音乐。
3- 在前台使用 Windows 媒体播放器播放音乐。
这样就可以下载了from here and test it
假设您的脚本有一个名为 Music 的文件夹,因此您可以使用这样的相对路径 ./Music/Matrix.mp3
所以你可以这样试一试:
Option Explicit
Dim Msg,Question,PathSound
Msg = "Did you want to hear some music ?"
PathSound = "./Music/Matrix.mp3" 'Relative Path
Question = MsgBox(Msg,VbQuestion+VbYesNo,Msg)
If Question = VbYes Then
Call Play(PathSound)
Else
Wscript.Quit()
End If
'**********************************************************
Sub Play(SoundFile)
Dim Sound
Set Sound = CreateObject("WMPlayer.OCX")
Sound.URL = SoundFile
Sound.settings.volume = 100
Sound.Controls.play
do while Sound.currentmedia.duration = 0
wscript.sleep 100
loop
wscript.sleep(int(Sound.currentmedia.duration)+1)*1000
End Sub
'**********************************************************
如果你喜欢在线播放音乐,那么你可以这样做:
Option Explicit
Dim Msg,Question,PathSound
Msg = "Did you want to hear some music ?"
PathSound = "http://hackoo.alwaysdata.net/Matrix.mp3"
Question = MsgBox(Msg,VbQuestion+VbYesNo,Msg)
If Question = VbYes Then
Call Play(PathSound)
Else
Wscript.Quit()
End If
'**********************************************************
Sub Play(SoundFile)
Dim Sound
Set Sound = CreateObject("WMPlayer.OCX")
Sound.URL = SoundFile
Sound.settings.volume = 100
Sound.Controls.play
do while Sound.currentmedia.duration = 0
wscript.sleep 100
loop
wscript.sleep(int(Sound.currentmedia.duration)+1)*1000
End Sub
'**********************************************************
希望这个回答能帮助您完成主脚本;)
当某个消息框出现时,我正在尝试从 VBScript 中播放声音文件。唯一的问题是我将把它发送到别处,而接收它的人将不会与我要播放的音频文件具有相同的路径名。我正在考虑将所有我想使用的声音文件放在与脚本相同的文件夹中,然后发送该文件夹,但我不知道如何确保声音文件能够播放。
所以我想最大的问题是如何概括路径名,以便任何人都可以从任何机器的脚本中听到文件。
到目前为止,这是我的代码:
if intAnswer3 = vbyes then
strSoundFile = "C:\pathname"
Set objShell = CreateObject("Wscript.Shell")
strCommand = "sndrec32 /play /close " & chr(34) & strSoundFile & chr(34)
objShell.Run strCommand, 0, True
你的意思是这样的吗:
描述: 此 Vbscript "PlayListSongs.vbs" 扫描文件夹及其子文件夹中的歌曲,并在文本文件中创建播放列表以便在后台播放。
更新: 我添加了另一个 vbscript 来停止并终止 "wscript.exe" 进程以停止后台播放音乐.
我添加了另一个 vbscript 以在前台使用 Windows Media Player 播放播放列表。
总之你可以找到zip 3 vbscript
1- 在后台播放播放列表。
2- 停止音乐。
3- 在前台使用 Windows 媒体播放器播放音乐。
这样就可以下载了from here and test it
假设您的脚本有一个名为 Music 的文件夹,因此您可以使用这样的相对路径 ./Music/Matrix.mp3
所以你可以这样试一试:
Option Explicit
Dim Msg,Question,PathSound
Msg = "Did you want to hear some music ?"
PathSound = "./Music/Matrix.mp3" 'Relative Path
Question = MsgBox(Msg,VbQuestion+VbYesNo,Msg)
If Question = VbYes Then
Call Play(PathSound)
Else
Wscript.Quit()
End If
'**********************************************************
Sub Play(SoundFile)
Dim Sound
Set Sound = CreateObject("WMPlayer.OCX")
Sound.URL = SoundFile
Sound.settings.volume = 100
Sound.Controls.play
do while Sound.currentmedia.duration = 0
wscript.sleep 100
loop
wscript.sleep(int(Sound.currentmedia.duration)+1)*1000
End Sub
'**********************************************************
如果你喜欢在线播放音乐,那么你可以这样做:
Option Explicit
Dim Msg,Question,PathSound
Msg = "Did you want to hear some music ?"
PathSound = "http://hackoo.alwaysdata.net/Matrix.mp3"
Question = MsgBox(Msg,VbQuestion+VbYesNo,Msg)
If Question = VbYes Then
Call Play(PathSound)
Else
Wscript.Quit()
End If
'**********************************************************
Sub Play(SoundFile)
Dim Sound
Set Sound = CreateObject("WMPlayer.OCX")
Sound.URL = SoundFile
Sound.settings.volume = 100
Sound.Controls.play
do while Sound.currentmedia.duration = 0
wscript.sleep 100
loop
wscript.sleep(int(Sound.currentmedia.duration)+1)*1000
End Sub
'**********************************************************
希望这个回答能帮助您完成主脚本;)