当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > 用vbscript实现在消息框中显示一个超链接

VBScript
用vbs脚本来关闭 HTML 页面的代码
用vbs实现确定是否安装了某个特定的补丁
用vbs确定用户的登录名的代码
用vbs找到映射到共享的所有驱动器并重新映射它们
可以从一台远程服务器运行 SP2 安装程序Install.vbs
用vbs判断一个日期是否在指定的时段内
vbs+hta中实现在单个 onClick 参数中包括多个子例程的代码
vbs中实现启动两个应用程序,一直等到其中一个程序结束,然后关闭另一个?
用vbs实现对文本文件中的项计数
用vbs对文本文件的内容进行排序
用vbscript把 Word 文档保存为文本文件的代码
用vbs返回 Internet Explorer 的下载控件和 Applet 的列表
用vbscript合并多个文本文件的代码
用vbscript防止本地用户更改其密码
用vbs针对一个 IP 地址范围运行脚本
用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点
使用vbscript脚本在表单中进行选择的代码
一个把任何文件转成批处理的vbs脚本Any2Bat.vbs
windows脚本调试howto的方法
注册表的禁用与解锁方法集合

VBScript 中的 用vbscript实现在消息框中显示一个超链接


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

问:
嗨,Scripting Guy!可以在消息框中包含指向某个 Web 页面的超链接吗?
-- CB
答:
嗨,CB。听起来您好像想要向用户显示一个消息框,并且希望在消息框中包含一个超链接,以便用户可以点击这个链接,从而获得更多信息。例如,假设某个用户试图访问一些资源,但被拒绝了。这种情况下,您可以弹出一个消息框,告诉用户访问被拒绝,然后向他们提供一个链接,这个链接指向的页面会告诉用户访问所需的权限。一般说来,这种办法会比简单地说“访问被拒绝”好得多。
那么,是否可以用脚本编写语言实现这个目的呢?好吧,据我们所知,目前还不能。消息框中含有超链接当然会很酷,但使用脚本编写语言则仅限于简单的消息框。
不过,先等等,别忙着离开!您并没有问我们:“是否存在某种变通办法可以实现相同目的,但不必在消息框中嵌入超链接?”如果您这么问,我们就会告诉您:“总会有变通办法的。”您所寻求的就是从消息框中实现对 Web 页面的一键式访问。一个方法就是在消息框中嵌入超链接,但不幸的是,我们上面说过,使用 VBScript 无法实现上述目的。因此,我们试着使用其他办法看看:为什么不弹出一个消息框,询问用户:“您是否想要申请访问此资源?”呢?如果用户点击否,那么脚本就会中止。如果用户点击是,脚本就会自动将用户带到合适的 Web 页面。一个消息框,一键式访问网站。它和使用超链接并不十分相同,但结果却是一样的。
如您所见,这只需要以下几行代码就可以实现:
复制代码 代码如下:

Set objShell = CreateObject("Wscript.Shell")
intMessage = Msgbox("Would you like to apply for access to this resource?", _
vbYesNo, "Access Denied")
If intMessage = vbYes Then
objShell.Run("http://www.microsoft.com")
Else
Wscript.Quit
End If
我们首先创建一个 WSH Shell 对象实例;我们需要创建这个实例,以便弹出 Web 浏览器和链接到网站。然后,我们显示消息框(标题为访问被拒绝),并询问用户:“您是否想要申请访问此资源?”这个消息框具有一个是按钮和一个否按钮,这就是 VBScript 常量 vbYesNo 的用途。
注意:有些人可能在想:“等等,我想您应该在 VBScript 中明确定义这些常量。”在大多数情况下,这是正确的。如果我们处理的是 FileSystemObject(打个比方),那么我们就需要使用类似如下代码定义常量:
Const ForReading = 1
但是,VBScript 有一些内部常量。vbYesNo 恰好就是其中之一。它用于在消息框中显示“是”按钮或“否”按钮。vbCrLf 则是另一个内部常量,它的作用是在字符串末尾添加回车换行。这些内部常量——它们是 VBScript 语言的一部分——不必定义;在您输入 vbYesNo 时,VBScript 会知道您的意思。
我们刚才说到哪了?哦,对了,我们弹出一个消息框,并向用户提供是按钮和否按钮。如果用户点击是,我们就将他们带到指定的网站。那么,如何知道用户点击的是否为是呢?很简单:当我们创建消息框时,我们就将用户响应存储在变量 intMessage 中。因此,若要判断用户点了哪个按钮,我们只要检查 intMessage 的值就可以了。如果这个值等于 vbYesNo(另一个内部常量,等于 6),那么用户点击的便为是,于是我们就使用 Shell 对象的 Run 方法打开网站 http://www.microsoft.com。(注意,我们需要做的就是指定 URL;然后操作系统就会使用默认浏览器导航到该站点。)
那如果用户点击的为否呢?这种情况下,我们就会退出 (Wscript.Quit)。
恰如我们所说的,这个方法和我们想象中的不完全一样,但它可以实现这个目的。
顺便说一下,如果您想了解有关 VBScript 的 Msgbox 函数以及配置这个函数的不同方式的更多信息,请访问MSDN 上的 “VBScript 语言参考”。
那如果您需要制作精美一点的消息框呢?这种情况下,您可以自己动手制作一个 HTML 页面,然后使用这个页面模拟真实的 Windows 消息框。不过这个问题我们将在其他时间讨论。