2

当某个 msgbox 出现时,我正在尝试从 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
4

2 回答 2

3

假设您的脚本中有一个名为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
'**********************************************************

我希望这个答案可以帮助您完成主脚本;)

于 2015-04-22T21:13:53.473 回答
1

你的意思是这样的:

在此处输入图像描述

描述: 这个Vbscript “PlayListSongs.vbs”扫描到一个文件夹及其子文件夹中的歌曲,并在文本文件中创建一个播放列表,以便在后台播放。

更新:我添加了另一个 vbscript 来停止并终止“wscript.exe”进程,以停止在后台播放音乐。

我添加了另一个 vbscript 以在前台使用 Windows Media Player 播放播放列表。

总之,您可以在 zip 3 vbscript中找到

1-在后台播放播放列表。

2-停止音乐。

3-在前台使用 Windows Media Player 播放音乐。

所以你可以从这里下载并测试它

于 2015-04-21T03:20:32.230 回答