VBscript - 任何人都可以帮助检查下面我的脚本有什么问题

时间:2015-07-08 09:19:55

标签: vbscript

Dim Nagios
Nagios = http://gl-nagios.fciconnect.com/centreon/index.php
set WshShell = WScript.CreateObject("WScript.Shell")
call WshShell.Run(nagios, 1, false)

WScript.Sleep 2000
WshShell.SendKeys ""
WScript.Sleep 1000
WshShell.SendKeys "{TAB}"
WScript.Sleep 1000
WshShell.SendKeys ""
WshShell.SendKeys "{TAB}"
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 5000
'Browse to DownHost
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WScript.Sleep 2000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 5000
WshShell.SendKeys "{PRTSC}"
WScript.Sleep 5000
WshShell.AppActivate"C:\AutoScreenCapture\IECapt --url="nagios" --out=C:\AutoScreenCapture\Warning.jpg"
WScript.Quit

我打算使用vbscript登录网站并在其活动网页上进行截图,并使用IEcapt免费软件捕获其截图。不知道脚本在哪里出错了。任何专家都建议。

1 个答案:

答案 0 :(得分:0)

你有几个问题,但在我找到它们之前,请允许我声明我不熟悉IECapt及其工作原理。

首先,正如@bond所述,您需要将Nagios作业括在引号中: -

Nagios = "http://gl-nagios.fciconnect.com/centreon/index.php"

其次,AppActivate只是切换到另一个已在运行的应用程序窗口。看起来您需要使用命令行运行应用程序以从剪贴板导出图像(您无法切换到应用程序并应用参数)。因此,我建议您从第4行删除对Run的调用,并将AppActivate调用更改为Run方法,以便您可以使用参数启动它。同样,不完全确定应用程序的工作方式,因此可能需要进行审核。

第三,您在插入网址时遇到字符串连接问题。您需要使用连接运算符&。为了保持良好的约定,请尝试使用与您声明它们相同的大小写的变量名称,在本例中为Nagios

'Start up the screen-capture app and minimise it
WshShell.Run "C:\AutoScreenCapture\IECapt --url=" & Nagios & " --out=C:\AutoScreenCapture\Warning.jpg", 2

第四,我总是建议声明每个变量以避免运行时错误和错误。因此,您应始终将VBScript文件的第1行设为: -

Option Explicit  'Enforce variable declaration

第五,您尚未为WshShell声明变量:

Dim WshShell

最后,您应该始终为Set

的变量释放内存
  Set WshShell = Nothing
  Set Nagios = Nothing