当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > vbs+hta中实现在单个 onClick 参数中包括多个子例程的代码

VBScript
用vbs检索在运行对话框中键入的一系列命令的代码
编写可以打开文本文件并打乱在该文件中所找到的单词顺序的vbs脚本
在 HTA 中暂停脚本的方法
运行脚本之前,如何确定计算机上的默认脚本宿主的代码
用vbs实现删除名称中有撇号的文件夹
用vbs将输出内容写到屏幕以覆盖当前屏幕上的内容的方法
用vbs实现配置无人登录计算机时使用的屏幕保护程序
用vbs更改 Internet Explorer 的标题栏
用vbs读取文本文件的最后一行
用vbs实现重新启动 Internet Explorer
用vbs实现禁用服务
用vbs确定计算机是否有 USB 2.0 端口的代码
用vbs列出注册表中 Run 项中的所有项目
用vbs将名称截断以使其最多包含 16 个字符的代码
用vbs将本地文件替换为在文件服务器上找到的新版本
用vbs确定脚本正在哪一个帐户下运行
用vbs确定可移动驱动器的连接时间
用vbs记录屏幕保护程序的开始时间和结束时间
用vbs计算某个词在日志文件中的出现次数
vbs病毒的简单例子源代码解析

VBScript 中的 vbs+hta中实现在单个 onClick 参数中包括多个子例程的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 52 ::
收藏到网摘: n/a

问:
您好,脚本专家! 在您的 HTA 示例中,您为我们展示了如何单击一个按钮使一个子例程得以运行。 那么,如何向一个按钮的 onClick 参数添加两个或多个子例程呢?
-- FM
答:
您好,FM。您知道,在认知心理学中有一个有趣的分支,称为问题发现;其理论是您回答问题的能力通常首先取决于您问到的问题。 例如,您 – 以及其他几个人 – 想要知道如何在一个按钮的 onClick 参数中指定多个子例程。 我们见过人们尝试对代码做出各种修改,以下就是一个例子:
<input type="button" value="Run Button" onClick="Script_1; Script_2; Script_3">
正如您所见,这不能解决问题。
那么让我们将发现问题的技能应用到测试中,看看是否能够用其它方式来描述该问题。 (通常,脚本专家无需发现问题;问题会设法找到我们。) 下面是问题的关键所在: 我们是真的要向 onClick 参数添加多个子例程,还是仅想要在任何时候单击按钮时能够运行多个子例程?
如果是后者,我们有下面的答案:
复制代码 代码如下:

<html>
<head>
<title>Multiple Subroutines</title>
<HTA:APPLICATION
ID="objHTAHelpomatic"
APPLICATIONNAME="MultipleSubroutines"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="maximize"
>
</head>
<SCRIPT Language="VBScript">
Sub RunScripts
Script_1
Script_2
Script_3
End Sub
Sub Script_1
Msgbox "This is subroutine 1."
End Sub
Sub Script_2
Msgbox "This is subroutine 2."
End Sub
Sub Script_3
Msgbox "This is subroutine 3."
End Sub
</SCRIPT>
<body>
<input type="button" value="Run Button" onClick="RunScripts">
</body>
</html>
注意: 前面的代码被设计为从一个 HTA(HTML 应用程序)运行。 如果想要测试该代码,只需复制该脚本,将其粘贴到记事本或者其它的文本编辑器,并且用 .HTA 文件扩展名保存。

如果粗略地看一下该代码,您可能会注意到按钮的 HTML 标记:
<input type="button" value="Run Button" onClick="RunScripts">
正如您所见到的那样,我们仅在 onClick 参数中指定了一个单一子例程 (RunScripts)。 哦,但是看一下子例程 RunScripts 的代码:
Sub RunScripts
Script_1
Script_2
Script_3
End Sub
答案就在这里。 在该子例程中我们所做的就是调用其它三个子例程: Script_1、Script_2 和 Script_3。这就是我们如何从一个按钮的单击事件中运行多个子例程的方法: 我们并不把所有那些子例程都放入 onClick 参数中,而是将其放入 onClick 所调用的单个子例程中。