如果另一个任务已关闭,请关闭VBS脚本



我正在尝试使用VBS和批处理文件的混合构建一个带有背景音乐的基本安装程序。

我在脚本的开头有一段代码,应该在安装程序执行任务时播放一首歌。问题是,如果安装程序被强制关闭,VBS脚本将继续播放音乐。

这是有问题的代码:

7za.exe x INSTALLMUSIC -oINSTALLMUSIC -r -y >NUL
set file=INSTALLMUSICMUSIC.mp3
( 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 100
echo loop
echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs
start /min sound.vbs

基本上,我需要一种方法让VBS脚本知道install.bat文件是否已强制关闭。我想我会使用某种形式的if函数,但我不确定我会怎么做

您可以使用与本博客文章中类似的代码来查看批处理文件是否仍在运行:

http://blogs.technet.com/b/heyscriptingguy/archive/2006/06/01/how-can-i-find-the-process-id-associated-with-a-batch-file.aspx

您可以编辑WMI查询以专门查找批处理命令进程,而不必循环遍历它们。实现这一点的最佳方法是创建一个运行WMI查询并返回True或False的函数。调用do while循环中的函数,如果它找不到正在运行的批处理文件,则调用wscript.quit

基于您通过从批处理文件中回显来创建VBScript的事实,这可能需要一段时间才能弄清楚。我建议不要从批处理文件中创建VBScript,而是单独创建VBScript并使用必要的参数调用它。如果你不知道如何处理参数,我建议你现在就学会,因为如果你要做这样的事情,这会让你的生活更轻松。

最新更新