Board logo

标题: [问题求助] VBS怎样判断迅雷下载任务是否进行中? [打印本页]

作者: 普大喜奔    时间: 2014-9-25 18:23     标题: VBS怎样判断迅雷下载任务是否进行中?

有个**.td的文件从开始就是目标文件大小,没法用文件体积变化判断,于是通过**.td.cfg或**.td的修改时间判断,代码:
  1. set args=wscript.arguments  
  2. arg=args(0)
  3. set fso=createobject("scripting.filesystemobject")
  4. set f=fso.getfile(arg)
  5. d=f.datelastmodified
  6. if datediff("n",cdate(d),now())>5 then '超过5分钟未修改判定下载停滞
  7.   wscript.echo "下载停滞,尝试重启迅雷..."
  8.   set ws=CreateObject("WScript.Shell")
  9.   ws.run "taskkill /F /IM Thunder.exe /T",0
  10.   wscript.sleep 6000
  11.   ws.run "迅雷极速版"
  12. else
  13.   wscript.echo "正在下载,3分钟后重新检测..."
  14. end if
复制代码
有时候运行正常,有时候下载正酣畅着呢,就给重启了,难道下载进度与这两个文件的更新不同步?求指教
作者: yu2n    时间: 2014-9-25 19:33

在这3分钟或更长的时间内,迅雷可能暂停了下载动作(没资源、网络拥塞),或者下载的内容没填满缓冲区(在内存中并没有写入硬盘)。

建议:
1. 加长时间检测
2. 对多个文件检测

或者

判断网络流量,如 30 分钟内流量一直小于 10Kb 则……
作者: 普大喜奔    时间: 2014-9-25 19:38

回复 2# yu2n
检测流量做不到 最简单就是加长时间 改成了20分钟判定停滞 应该是你说的缓冲区的问题 想用批处理判断分区剩余空间 结果显示数字超过32位没法处理 有什么简便办法吗?vbs或python都可以
PS:明天给分,今天完了
作者: CrLf    时间: 2014-9-25 19:50

皈依迅雷网盘+idm 的组合很久了,没装迅雷,但有点想法,检测端口可以吗?
作者: 普大喜奔    时间: 2014-9-25 19:58

回复 4# CrLf
建议装迅雷极速版 可以设置不弹出那个烦人的新建任务窗口 VBS+python搞个自动下载机很好玩哈
端口检测有点高端 可否详解?
作者: 523066680    时间: 2014-9-25 20:10

本帖最后由 523066680 于 2014-9-25 20:13 编辑

回复 5# 普大喜奔


    你以为我们这种光纤迅雷铂金会员+QQ旋风+打了鸡血的电驴有判断迅雷下载的问题吗?
都是秒下!CrLf 继续
作者: CrLf    时间: 2014-9-25 20:12

回复 5# 普大喜奔


当我没说,误解题意了,端口检测好像无法做到判断某一个文件是否在下载
原来的想法大概是检查这两个命令的输出:
  1. netstat -o
  2. netstat -e
复制代码

作者: CrLf    时间: 2014-9-25 20:18

回复 6# 523066680


    卧槽,白金会员,冰天雪地裸体360度跪求土豪保养
作者: 普大喜奔    时间: 2014-9-25 20:18

回复 4# CrLf
我这小区宽带必须考虑下不动的问题 写代码最烦就是考虑例外
作者: 普大喜奔    时间: 2014-9-25 20:19

回复 6# 523066680

回错人了 我这小区宽带必须考虑下不动的问题 写代码最烦就是考虑例外
作者: 普大喜奔    时间: 2014-9-25 20:22

回复 2# yu2n
剩余空间的问题找了段代码经测好用 已解决
  1. Dim Fso,MyDriver
  2. Dim AvailableSpace
  3. Set Fso = CreateObject("Scripting.FileSystemObject")
  4. Set MyDriver = Fso.GetDrive("c:\")
  5. 'AvailableSpace属性获取当前磁盘驱动器的可用大小
  6. AvailableSpace = MyDriver.AvailableSpace/1024/1024/1024
  7. 'FormatNumber格式化大小,精确到小数点后一位
  8. AvailableSpace = FormatNumber(AvailableSpace,1)
  9. MsgBox AvailableSpace&"GB" '输出当前磁盘驱动器可用大小,单位为GB
复制代码

作者: CrLf    时间: 2014-9-25 20:38

回复 5# 普大喜奔


之前也有装迅雷,但在局域网内被墙,原因你懂得,而且点击迅雷离线空间的下载按钮时就会自动弹出,还得手动搬运到 idm 新建任务,再加上吸血驴的恶名...
反正离线空间已经无所不能,idm 又快得变态(仅有的槽点是同时下多个文件会卡 cpu),所以一怒之下把迅雷拖出去剁了
作者: 普大喜奔    时间: 2014-9-25 20:44

回复 12# CrLf
好东西 空了看看。。。
作者: yu2n    时间: 2014-9-25 20:49

回复 3# 普大喜奔
VBS统计网络流量
http://www.bathome.net/thread-3198-1-1.html

作者: CrLf    时间: 2014-9-25 20:53

回复 3# 普大喜奔


仔细想了一下,这和剩余空间好像没关系吧?
.td 文件从一开始就是固定大小,而 .td.cfg 文件如果修改时间没变的话,体积不是也不应该发生改变吗?
作者: 523066680    时间: 2014-9-25 21:00

本帖最后由 523066680 于 2014-9-25 21:10 编辑

回复 15# CrLf


    所以只能通过进程流量判断吧,fastslz不是发了一个监测流量的vbs吗?
http://bbs.bathome.net/viewthrea ... ighlight=%2Bfastslz
作者: CrLf    时间: 2014-9-25 21:14

回复 16# 523066680


    那也判断不了某个进程的流量呀,更别说具体到某个文件了
作者: 523066680    时间: 2014-9-25 21:24

回复 17# CrLf


    有没有第三方命令? 我还在解析那个蠕虫呢,不操这个心了=_=
作者: CrLf    时间: 2014-9-25 21:36

回复 18# 523066680


    被你点醒了,一搜还真有,见此链接:查看指定进程的网络连接状态(tcpvcon.exe)
作者: 普大喜奔    时间: 2014-9-26 14:47

回复 15# CrLf

没关系 我是加一个清理磁盘的功能,硬盘塞满了就删掉最早下的那个
作者: 普大喜奔    时间: 2014-9-26 14:53

回复 15# CrLf
已在闲置笔记本上运行了 BAT+VBS+PY 的脚本 每下到一部新电影给自己发个含简介的email 看到有人说PY能给自己发飞信 有点复杂就没弄
写脚本纯属娱乐 电影下了一堆都没怎么看~




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2