脚本流程由HTA表单中的按钮运行。然而,每当按下按钮时,而不是看到这个[“下载:”& dlFileName],程序冻结,并保持冻结状态,直到下载完成。我确实看到了第二条消息[“下载完成!”]。
当我在第2行和第3行之间输入MsgBox时,我确实看到文本在按下OK按钮之前变为“正在下载...”,但现在没有解决方案了...
我写错了,还是有一种(简单,轻松)的方式来暂停行动,直到先前的行动被采取?
欢迎任何信息,我对此很新!
Sub Download_File(dlAddress, dlFileName)
strStatus.innerHTML="Downloading: " & dlFileName 'This does not show up.
strHttp.Open "GET", dlAddress, False
strHttp.Send
With createobject("Adodb.Stream")
.type = 1 '//binary
.open
.write strHttp.responseBody
.savetofile txtDLPath.Value & dlFileName, 2 '//overwrite
End With
strStatus.innerHTML="Downlad complete!"
End Sub
答案 0 :(得分:7)
这是HTA中的正常行为。我所做的是使用一个叫做“困”的子,它产生一个近乎“瞬间”的延迟,它以一种允许在其他例程中发生html更新的方式暂停脚本。
在更新InnerHTML后立即添加对此函数的调用。
Sub sleepy
Set objShell = CreateObject("WScript.Shell")
strCmd = "%COMSPEC% /c"
objShell.Run strCmd,0,1
End Sub