查看完整版本: 间隔一段时间重复执行程序的脚本

北羊 2008-5-5 20:55

间隔一段时间重复执行程序的脚本

这个脚本是应论坛里的寂雪MM要求写的p&^0wI5g
她的要求是这样的:&yD/vj,w3j3dT
播放歌曲,每首播完后停顿一段时间后再继续下一首+^Rs},~K&z

'Q"V$}:@3d UK5o~}V 我想了一下,不知道哪个播放器可以实现,如果大家知道请告诉我告诉她~~~~:lol:
mH @k'vt
x%fS6j!J4|0\T 但感觉似乎可以通过脚本来实现,于是试写了一下,原以为把以前写的那个定时执行程序的脚本改一下就行了,没想到写起来才发现,并不是那么简单,写了两个小时才初步满意下来
iN{xJ? F2aqo)e1r.q?G
过程:Q$|E%H+Uw_q
1.获取三个变量 :间隔时间   播放程序  音乐文件所在的目录
IV7Y#_ d5|.X/g
c-fsxg;Sx8[|#L 2.获取目录中的文件集合后,轮流调用播放程序来播放
'hA*q:_%|p t G~eu U{C'?
详细说明见代码, 稍稍改动,可以实现其他功能,希望对脚本初学者有所帮助
;nk z;`s ^9G
%{C1j Hcp/\
9LI%Ha3L Hfi [color=Red]还存在的问题:[/color]g6\#Ld P8pSc
1.播放程序的地址不能有空格~~~~所以program files目录下的软件是不行的,这个我一时想不到怎么解决,请高手帮忙?r@YSf!zQx
2.播放程序必须设置成播放完毕后自动退出?/I9uf L1H!n7?
3.半中途想结束,只能通过任务管理器来结束,感觉不太人性化[code]Dim F, G, T
.r"v&Rdo"Q [m!A 6ZHlH$s
'提示用户输入播放间隔时间 j.pBNacX:V

D+C9}bQ T = InputBox("本程序将顺序播放目录中的音乐文件"&Chr(10)&Chr(10)&"请输入每首音乐播放后的停顿秒数,如5,默认为十秒","输入时间间隔")vT;k1f G,jnl
'如果输入为空,则默认为十秒
{D:pf:tg~ If T = "" Then
Zq0n8S0u F6Fo%Q T = 10
7S1i E"v;y6F8u,G7f End If
Qf#v\ t-h^!u0z_
plG XO{3opSy.p '提示用户输入音乐播放程序的绝对地址
lpd3pAd\fBz a F = InputBox("本程序将顺序播放目录中的音乐文件,每首音乐间相隔"&T&"秒钟"&Chr(10)&Chr(10)&"请输入音乐播放程序的绝对地址,如 D:\music\ttplayer.exe  ","输入播放程序地址") *h7j%D8R Q8\)O E R
'如果输入为空则退出
v2Kn,do%u } If F = "" Then+zE#Y9k,E e8|n7FA)yD
Wscript.Quit
4im:}[!mR4F s*B0[ End If
p)R!n9YYe/| u)dd*J+Sf$gdo`
'提示用户输入音乐所在目录
1sn2mi2g5lj,Ah G = InputBox("本程序将顺序播放目录中的音乐文件,每首音乐间相隔"&T&"秒钟"&Chr(10)&Chr(10)&"请输入音乐所在的目录,如 D:\music\  ","输入音乐所在目录")
{r~V+L?3j '如果输入为空则退出Yoic O7SI#C
If G = "" Theni ]$| K/g9V'g
Wscript.Quit
%T]u(Q-a7Y End If:C-DZW_*L j
'检查输入的目录字符串是否在最后有"\",如果没有则加上Z:N}u#G*O]
If InStrRev(G,"\")<LEN(G) Then
_ P+rK"dD_ G = G & "\"9`3S2k j(BV
End If
K3l'D:O5`Y rT {Sa5}3^7`~9j
v8E6^,QS{
Set oFSO = CreateObject("Scripting.FileSystemObject") '创建一个文件系统对象
QySx#y '检查输入的播放程序是否存在P'LUK w{|~
If Not (oFSO.FileExists(F)) Then
)E0I ? Lb MsgBox "输入的播放程序"&F&"不存在,程序终止",16,"错误" *BxL{5u|
Wscript.Quit .D H-r4s j
End If
Y;X"].uhf4i)E.y8M '检查输入的目录是否存在
U3U(_W%N GV If Not (oFSO.FolderExists(G)) Then
4Z&mB)Y:@_.^8u)[yR_ MsgBox "输入的目录"&G&"不存在,程序终止",16,"错误" 3@7N_#} ur%\5Y
Wscript.Quit 1sRw\Cp"V&|
End If
Z"b"f1L4U w;j
Xgg qxVok4@H0{ Dim musicfolder, musicfiles, musicfile}3Wl\ G(va,C
Set musicfolder = oFSO.GetFolder(G)
p9fd"u,x9e(iu-P)_ Set musicfiles = musicfolder.Files
5KiB~*iz3H#p-W Set wshshell = CreateObject("Wscript.shell")
F!L K?Wd For Each musicfile in musicfiles
hu BKDMd         wshshell.Run F&" "&musicfile,4,true '调用播放程序播放音乐文件
{.p|ZZ&Rm         WScript.sleep (T*1000)
d-WzH+aV` Next[/code]

dying 2008-5-22 13:36

额,.刚学没多久,..马马虎虎看懂.先收藏下~~忽忽`

cnmdb 2008-6-8 13:14

看看能不能看懂呵
页: [1]
查看完整版本: 间隔一段时间重复执行程序的脚本