2

下面的脚本由 HTA 表单中的按钮运行。然而,每当按下按钮时,程序不会看到这个 ["Downloading: " & dlFileName],而是冻结,并保持冻结状态直到下载完成。我确实看到了第二条消息 [“下载完成!”]。

当我在第 2 行和第 3 行之间输入 MsgBox 时,在按下 OK 按钮之前,我确实看到文本变为“Downloading ...”,但现在没有解决方案是...

我是不是写错了,还是有一种(简单、轻松)的方法来停止操作,直到采取了前一个操作?

欢迎提供任何信息,我对此很陌生!

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
4

1 回答 1

8

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

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

Sub sleepy
    Set objShell = CreateObject("WScript.Shell")
    strCmd = "%COMSPEC% /c"
    objShell.Run strCmd,0,1
End Sub 
于 2013-10-04T21:21:33.027 回答