中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 02:41
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 不用任何播放器实现后台播放声音,一行搞定
楼 主 不用任何播放器实现后台播放声音,一行搞定 发表于 2010-01-22 21:54 ·  中国 天津 电信
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
UID 116706
性别 男
状态 离线
mshta vbscript:document.write("<bgsound src='E:\audio\曹方我是认真的.mp3' loop='-1'>")
src可以是网络资源loop是播放次数-1表示循环,手机打的不知道有错没。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
s11ss +7 2010-01-27 08:29
┏━━━━━━┓
┃据说是李先生┃
┠──────┨
┃*ntRSS┃
┗━━━━━━┛
2 发表于 2010-01-23 15:32 ·  中国 重庆 移动
初级用户
积分 46
发帖 39
注册 2008-11-02 22:24
UID 129819
性别 男
状态 离线
谢谢!用得着.
3 发表于 2010-01-23 22:09 ·  中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
UID 119451
性别 男
状态 离线
不错
但运行多几次任务管理器就添加了几个mshta.exe进程
4 发表于 2010-01-26 19:39 ·  中国 北京 联通
新手上路
积分 3
发帖 2
注册 2007-08-14 20:09
UID 95142
性别 男
来自 北京
状态 离线
有意思啊
5 发表于 2010-01-26 20:01 ·  中国 河南 郑州 新密市 联通
初级用户
★★
积分 161
发帖 56
注册 2007-10-01 00:42
UID 98672
性别 男
状态 离线
不错! 效果不错!精简 效果佳!

就是不知从哪关关闭 !只能结束进程了!
本来就是后台运行吗?不会有关闭按钮了!呵呵!
6 发表于 2010-01-26 21:35 ·  中国 安徽 池州 电信
贫困用户
积分 1
发帖 3
注册 2010-01-03 21:49
UID 157899
性别 男
状态 离线
是有出现多个进程的问题
还是挺不错的 支持









Cordless DrillsMakita Cordless DrillsBosch Cordless Drillscordless drill driver
7 发表于 2010-01-27 10:08 ·  中国 北京 中电华通通信有限公司
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
UID 116706
性别 男
状态 离线
这个代码实际上是打开了一个HTML页面(我们看不到),这个页面里面会有背景声音;
而网页没关闭的时候 mshta.exe 就存在,声音停止了网页也不会自动关闭,于是就会残留进程;
因此我们只能手动将其关闭,
或者,由于没有事件,只能在代码里面加上一个固定的等待时间,之后自动关闭。
因为 vbscript 的 wscript 对象在 html 中不可用,所以不能用 wscript.sleep 来延时,改用 window 对象的 setTimeout

以我那首歌为例,长度是 3分06秒 ,即 186 秒,假设我要播放两遍之后结束 mshta.exe 进程,那么就是要在 372000 毫秒之后关闭,可以适当地等几秒,就取 375000 吧

mshta vbscript:execute("document.write ""<bgsound src='E:\audio\曹方我是认真的.mp3' loop='2'>"":window.setTimeout ""window.close()"",375000")

用 javascript 写起来更容易些:

mshta javascript:document.write("<bgsound src='E:\audio\曹方我是认真的.mp3' loop='2'>");window.setTimeout("window.close()",375000)

如果你不知道歌曲有多长,就把时间设的长一些,一般流行歌曲不会超过 300000 ms,即5分钟吧。

----------------------
2010.09.03 修改以适应有空格的路径
代码效果:

后台播放 "C:\Documents and Settings\issuser\桌面\music\incoming\EMINEM ft.NATE DOGG - Shake That.mp3" 两遍,但本程序 mshta.exe 会准时在 360000ms,即 6 分钟后自动结束。

mshta vbscript:execute("document.write ""<bgsound src='file:///"+Replace("C:\Documents and Settings\issuser\桌面\music\incoming\EMINEM ft.NATE DOGG - Shake That.mp3","\","/")+"' loop='2'>"":window.setTimeout ""window.close()"",360000")


[ Last edited by qinchun36 on 2010-9-3 at 18:39 ]
┏━━━━━━┓
┃据说是李先生┃
┠──────┨
┃*ntRSS┃
┗━━━━━━┛
论坛跳转: