使用VBScript的HTA冻结并且不更新进度状态,直到文件传输完成

Jon*_*lem 2 html vbscript freeze hta

下面的脚本由HTA表单中的按钮运行.然而,每当按下按钮时,程序冻结并保持冻结状态,直到下载完成,而不是看到["Downloading:"&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
Run Code Online (Sandbox Code Playgroud)

小智 7

这是HTA中的正常行为.我所做的是使用一个叫做"困"的子,它产生一个近乎即时的"延迟",它以允许html更新发生在其他例程中的方式暂停脚本.

在更新InnerHTML后立即添加对此函数的调用.

Sub sleepy
    Set objShell = CreateObject("WScript.Shell")
    strCmd = "%COMSPEC% /c"
    objShell.Run strCmd,0,1
End Sub 
Run Code Online (Sandbox Code Playgroud)