如何在vbscript中设置延迟

您所在的位置:网站首页 VBS脚本语言 如何在vbscript中设置延迟

如何在vbscript中设置延迟

2024-04-07 04:35| 来源: 网络整理| 查看: 265

如何设置vbscript的延迟?

WScript.Sleep(100)在Windows XP,Vista上不起作用。

相关讨论 "WScript.Sleep(100)在Windows XP,Vista上不起作用"是的,确实如此(仅在XP中测试过)。 它等待100毫秒(十分之一秒)。 如果您想要100秒,则使用100 * 1000,因为该值以毫秒为单位。 (因为这是VBScript,你不需要parens。他们实际上不打破它,但它不对......) 试试WSH.Sleep 1000

为此而努力(XP)。

创建一个新文件,将其命名为test.vbs。把它放进去吧。

12WScript.Sleep 1000 MsgBox"TEST"

运行它,注意消息框显示之前的延迟。

注意,该数字以毫秒为单位,因此1000为1秒。

相关讨论 删除)并替换(用空格使代码有效VBScript。 就像VistaSP2中的魅力一样

如果您尝试在VBScript中模拟睡眠延迟但WScript不可用(例如:您的脚本是从Microsoft的BGInfo工具调用的),请尝试以下方法。

以下示例将从处理指令的那一刻起延迟10秒:

1234Dim dteWait dteWait = DateAdd("s", 10, Now()) Do Until (Now() > dteWait) Loop 相关讨论 注:这对于经典asp中的vbscript也很有效。 它可以工作......但我担心该解决方案的CPU使用率(它是一个长循环)。也许在没有WScript的脚本中,您可以使用CreateObject调用它,如下面的答案所示:stackoverflow.com/a/4037208/460362 即使对于IE8也不好。我不推荐它。 适用于IE 11。 可怕的解决方案。但如果有些东西是愚蠢的,但是它有效......它不是愚蠢的。 为HTA工作我不会读取我创建的objShell.Sleep() shell对象objShell.Sleep(),也不是WScript.Sleep()。所以我做了Paulies方法。一个警告:在Chrome中,如果您想要等待脚本响应,如果您输入的时间超过1秒,它会为您提供弹出窗口。你可以说是的并且它可以工作,但它可能会吓到许多非技术人员。

如果它是VBScript,它应该是

1WScript.Sleep 100

如果是JavaScript

1WScript.Sleep(100);

时间以毫秒为单位。 WScript.Sleep 1000导致1秒睡眠。

相关讨论 @ badbod99就像是说:只要你没有被抓住,偷窃工作以及购买 -"someSub(param)"会将一个副本传递给someSub。

以下行将使您的脚本睡眠5分钟。

1WScript.Sleep 5*60*1000

请注意,传递给sleep调用的值以毫秒为单位。

这里有很多答案假设您在Windows Scripting Host中运行VBScript(通常是wscript.exe或cscript.exe)。如果您收到的错误如"变量未定义:"WScript"那么您可能不是。

WScript对象仅在您在Windows Scripting Host下运行时才可用,如果您在另一个脚本主机(例如Internet Explorer)下运行(如果您使用的是HTA,则可能没有意识到)它是不会自动提供。

微软的嘿,脚本专家!博客有一篇文章只涉及这个主题我如何暂时暂停HTA中的脚本?他们使用VBScript setTimeout创建一个计时器来模拟睡眠,而无需使用CPU占用环路等。

使用的代码是这样的:

12345678910111213141516171819     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    

有关完整说明,请参阅链接的博客文章,但基本上当单击按钮时,它会创建一个从现在开始触发5,000毫秒的计时器,并且当它触发时运行名为"PausedSection"的VBScript子例程,它清除计时器,并运行任何你想要的代码。

这是另一种选择:

123456789Sub subSleep(strSeconds) ' subSleep(2)     Dim objShell     Dim strCmd     set objShell = CreateObject("wscript.Shell")     'objShell.Run cmdline,1,False     strCmd ="%COMSPEC% /c ping -n" & strSeconds &" 127.0.0.1>nul"         objShell.Run strCmd,0,1 End Sub

更好用的计时器:

123456Sub wait (sec)     dim temp     temp=timer     do while timer-temp


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3