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

VBScript
Restart.vbs源代码可以重启远程电脑的vbs
远程或本地获取系统信息的脚本RGIS.vbs
远程开启/关闭目标telnet服务的windows脚本RTCS.vbs
可以得到当前系统信息的脚本sysinfo.vbs
RCMD使用说明
远程启动终端服务的windows脚本ROTS.vbs
解锁注册表的vbs脚本
如何使用脚本锁定任务栏?
灵活实用VBS入门教程应用篇
注册表-批处理-VBS之间的功能对应
收集的一些经典的vbs脚本大全
VBS+MSWinsock打造灵巧UDP后门的相关资料
一些经典的主要用户黑客的vbs脚本结合echo的dos下实现
可以定时自动关机的vbs脚本
利用wscript执行文件[包括可执行exe文件]vbs脚本
vbs实用软件自造——Windows脚本应用实例
防止网页脚本病毒执行的方法-from web
打开QQ并且让它自己输入用户名和密码的vbs脚本
多进程的实现投票的vbs脚本
用vbs脚本实现运行DOS批处理不再出现黑屏cmd窗口

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 65 ::
收藏到网摘: 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 所调用的单个子例程中。