2015-03-02 194 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 

另外,不是最乾淨的答案,但如果你知道的話,你可以在下載的文件在你的循環達到其大小檢查。

相關問題