2015-03-02 147 views
1

我正试图从ftp位置下载软件。下载完成后,应开始安装。我可以知道如何检查下载是否完成或不使用VBscript。如何知道下载是否完成

这是我使用的当前逻辑,但我得到所需的对象:”错误

我实例从jar文件

set shell = wscript.CreateObject("WScript.Shell") 
shell.AppActivate ("Internet Explorer") 


Dim objHTTP 

Do 
wscript.sleep 100 
Loop While(objHTTP.readyState <> 4) And (objHTTP.readyState <> "complete") 

msgbox ("download completed") 
+0

你的代码似乎不完整。如果你想检查你的下载状态,它必须从你的“objHTTP”对象开始。它无法检查由另一个对象启动的下载。 – Rubik 2015-03-02 09:31:21

+0

其实我从一个jar文件实例化我的VBScript:设置SHELL = wscript.CreateObject( “WScript.Shell”) shell.AppActivate(的 “Internet Explorer”) wscript.sleep 10000 昏暗objHTTP 做 WScript的。睡100 循环while(objHTTP.readyState <> 4)和(objHTTP.readyState <> “完整”) MSGBOX( “下载完成”) – user3857726 2015-03-02 09:49:01

+0

更新相同 – user3857726 2015-03-02 10:01:04

回答

1

objHTTP对象是VBScript的没有链接在一起,他们不能。 你不能检查下载从objHTTP,您需要管理整个下载与objHTTP对象。

这里是你可以做来管理您的下载内容:

Const BINARY = 1 
Const CREATE = 2 

' Download 7-ZIP 64bits. 
myUrl = "http://www.7-zip.org/a/7z938-x64.msi" 
' Save to disk in that file. 
myFile = "c:\temp\7z938-x64.msi" 

Set oHttp = WScript.CreateObject("WinHttp.WinHttpRequest.5.1") 
oHttp.open "Get", myURL, False 
oHttp.send 

Set oStream = WScript.CreateObject("ADODB.Stream") 
oStream.type = BINARY 
oStream.open 
oStream.write oHTTP.ResponseBody 
oStream.SaveToFile myFile, CREATE 
ostream.Close 

另外,不是最干净的答案,但如果你知道的话,你可以在下载的文件在你的循环达到其大小检查。

相关问题