mshta vbscript:document.write("<bgsound src='E:\audio\曹方我是认真的.mp3' loop='-1'>")
src可以是网络资源loop是播放次数-1表示循环,手机打的不知道有错没。
谢谢!用得着.
这个代码实际上是打开了一个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 ]