Многие ответы здесь предполагают, что вы запускаете VBScript на Windows Scripting Host (обычно wscript.exe
или cscript.exe
). Если вы получаете ошибки типа ' Переменная не определена: "WScript" ', то вы, вероятно, нет.
Объект WScript доступен только в том случае, если вы работаете под хостом скриптов Windows, если вы работаете под другим хостом скриптов, например Internet Explorer (и вы можете этого не понимать, если находитесь в чем-то вроде HTA) он не доступен автоматически.
Эй, Microsoft, автор сценариев! В блоге есть статья, посвященная именно этой теме Как я могу временно приостановить выполнение сценария в HTA? , в которой они используют VBScript setTimeout
для создания таймера для имитации сна без необходимости использования загрузки процессора петли и т. д.
Используемый код:
<script language = "VBScript">
Dim dtmStartTime
Sub Test
dtmStartTime = Now
idTimer = window.setTimeout("PausedSection", 5000, "VBScript")
End Sub
Sub PausedSection
Msgbox dtmStartTime & vbCrLf & Now
window.clearTimeout(idTimer)
End Sub
</script>
<body>
<input id=runbutton type="button" value="Run Button" onClick="Test">
</body>
Подробное объяснение см. В связанном сообщении в блоге , но, по сути, при нажатии кнопки создается таймер, который запускает 5000 миллисекунд с этого момента, а при запуске запускается подпрограмма VBScript под названием «PausedSection» "который очищает таймер и запускает любой код, который вы хотите.