我有一个简单的脚本,搜索为网站和Excel生成的弹出框。它在大多数情况下都是有效的,但偶尔会出现错误,而且似乎是随机的。错误是线:6字符:3错误:无效的窗口句柄代码:80070578
我不明白为什么它会工作几个小时,然后似乎是随机的错误。此外,脚本使用了大量的CPU,如果有人可以建议如何使其更有效。谢谢你的时间
Set WshShell = CreateObject("WScript.Shell")
Do
Do
ret = WshShell.AppActivate("Message from webpage")
ret2 = WshShell.AppActivate("Microsoft Excel")
Loop Until ret = True or ret2 = True
WScript.sleep 500
ret = WshShell.AppActivate("Message from webpage")
ret2 = WshShell.AppActivate("Microsoft Excel")
If ret = True or ret2 = True Then
WScript.Sleep 200
WshShell.SendKeys("{ENTER}")
End If
WScript.sleep 500
Loop
简单的答案是VBScript不是为连续运行脚本而设计的。
至于你能做些什么来改进它,让我们稍微分析一下。
外部循环每500毫秒运行一次,这意味着每半秒脚本就会永远触发一次,这对于它正在做的事情来说是很繁重的,并且可能会导致运行时间越长,CPU使用率就越高。
外部循环是否需要如此频繁地运行,您是否可以将Sleep()
从500增加到1000甚至5000以减少CPU负载?
更好的是,你可以完全放弃外部循环,使用Windows自己的任务调度程序来运行任务,这将允许你创建一个计划任务,该任务将按照你的意愿经常执行脚本。这样,脚本运行到完成,关闭并释放内存,然后在下一个时间间隔再次运行。