注册 登录
编程论坛 ASP技术论坛

新人求助 asp如何实现电驴下载完成自动关机

huicao2002 发布于 2009-12-18 10:30, 2721 次点击
    以前没有接触过asp,不过是在百度搜索“如何实现电驴下载完成自动关机”的时候发现的,所以如果提的问题很白,不要奇怪,呵呵。由于是本地使用所以都没加Server,加了也会出现错误。一下是问题。
    在百度里搜索的“如何实现电驴下载完成自动关机”都是以下方法,此脚本的作用是每两分钟检测一次temp文件夹,若emule下载完成,则temp为空,脚本执行关机命令倒计时60秒关机。
dir="D:\Program Files\eMule\Temp"
Set fso=CreateObject("Scripting.FileSystemObject")
cmd="shutdown -s -f -t 60"
Set ws=WScript.CreateObject("WScript.Shell")
Wscript.Echo "emule自动关机脚本已运行……"
count=0
do until count<-1
chksize = fso.GetFolder(dir).Size
If chksize=0 Then
ws.run cmd,0
End If
WScript.Sleep 120000
loop
    但是我发现电驴现在就算在下载temp文件夹也是空的(难道跟我改了默认下载目录有关?)所以运行结果就是直接60秒关机。
    我发现在下载某个文件的时候比如《哈利波特与火焰杯.EXE》在未完成的时候在同一目录下,会有一个《哈利波特与火焰杯.EXE.part.met》文件大概2.34K。完成了就没有了。所以如果把上述脚本改成测试此文件大小则会出现没有发现文件的错误而不起作用。
    所以我想通过测试此文件是否存在来控制自动关机。百度了半天脚本改写为
Set fso=CreateObject("Scripting.FileSystemObject")
dir=MapPath("E:\下载管理\哈利波特与火焰杯.EXE.part.met")
cmd="shutdown -s -f -t 60"
Set ws=WScript.CreateObject("WScript.Shell")
Wscript.Echo "emule自动关机脚本已运行……"
count=0
do until count<-1
if fso.FileExists(dir) then  
ws.run cmd,0
End If
WScript.Sleep 120000
loop
    此脚本的错误在于MapPath是将指定的相对或虚拟路径映射到服务器上相应的物理目录上,而我是本地使用,所以直接就是物理目录,所以出现类型不匹配错误,导致无法将物理目录赋值给dir,程序无法运行。
    百度了半天,无解,望高手前来指教。如果asp无法完成此功能的话,用别的编程语言完成的也可以指教出来,谢谢。
9 回复
#2
aspic2009-12-18 14:52
知道速度 然后知道大概的时间 直接设置那个时间关机不就得了
#3
aspic2009-12-18 14:53
你是asp页面运行还是vbs文件运行?
#4
huicao20022009-12-18 15:10
vbs文件运行
#5
huicao20022009-12-18 15:10
回复 3楼 aspic
vbs文件运行
#6
huicao20022009-12-18 15:13
回复 2楼 aspic
因为那个速度不是很稳啊,一会100多,一会50多,不是很确定时间。
#7
aspic2009-12-18 18:17
没用过电驴~都是用迅雷 自己用下载完关机功能 好像迅雷也能下电驴资源吧
#8
yms1232009-12-18 21:12
检查电驴的临时文件的确是个好主意,因为电驴在下载完成后生成的临时文件就会改名为正式文件。不过MapPath是不支持绝对路径的。
#9
huicao20022009-12-19 11:08
回复 8楼 yms123
对啊,版主大人!所以怎样解决啊,用哪个函数,哪个命令来实现这个功能啊。
或者说, asp就无法实现这个功能?那我就死心了。

[ 本帖最后由 huicao2002 于 2009-12-19 11:11 编辑 ]
#10
yms1232009-12-19 13:28
问题是MapPath是获得网站内的绝对路径,网站外的绝对路径获取是个问题。
1