返回列表 回复 发帖

MsgBox()

VBScript有个函数MsgBox(),功能很强,但是在按键里面不能调用,通过对函数库stdlib.vbs的
分析和测试,发现可以修改实现MsgBox()的功能。
一、建立新函数PopBox()
不修改原函数,把下面的代码追加到stdlib.vbs后面。
function PopBox(Prompt,intSecond,strTitle,intButton,ByRef intReturn) '这个函数用来弹出一个对话框
dim obj
set obj = createobject("WScript.Shell")
intReturn=Cint(obj.Popup(Prompt,intSecond,strTitle,intButton))
end function
二、调用方式
调用方式和原MessageBox()近似,只是增加了参数数目
VBSCall Call PopBox(参数1:字符串,参数2:整数,参数3:字符串,参数4:正整数,返回值:整型变量)
三、参数详解
1)参数1(Prompt)
参数1可以字符串和字符串变量,显示在信息窗口,即原函数的显示内容。
2)参数2(intSecond)
参数为大于等于0的整数或该类型变量含义如下:
0表示一直等待用户选择
1和大于1的整数表示等待该时间(单位秒)以后窗口自动关闭,并返回-1
3)参数3(strTitle)
参数1可以字符串和字符串变量,弹出信息窗口的标题
4)参数4(intButton)
0和正整数或者该类型变量,显示按钮的数目和组合状态,该参数比较复杂如下:
第一组
0      只显示确定按钮。
1      显示确定和取消按钮。
2      显示终止、重试和忽略按钮。
3      显示是、否和取消按钮。
4      显示是和否按钮。
5      显示重试和取消按钮。
第二组
16     显示错误信息图标(X)。
32     显示警告查询图标(?)。
48     显示警告消息图标(!)。
64     显示信息消息图标(i)。
第三组
0      第一个按钮为默认按钮。
256    第二个按钮为默认按钮。
512    第三个按钮为默认按钮。
768    第四个按钮为默认按钮。
第四组
0      应用程序模式:用户必须响应消息框才能继续在当前应用程序中工作。
4096   系统模式:在用户响应消息框前,所有应用程序都被挂起。
第一组值用于描述对话框中显示的按钮类型与数目
第二组值用于描述图标的样式
第三组值用于确定默认按钮
第四组值则决定消息框的样式
将这些数字相加以生成 intButton 参数值时,只能从每组值中取用一个数字
5)参数5返回值(intReturn)
intreturn 为整型变量返回值为1到7的整数和-1,详细含义如下:
1      确定
2      取消
3      终止(放弃)
4      重试
5      忽略
6      是
7      否
-1      自动关闭
当返回值分别等于1到7的数值时,表示用户点击了相应的按钮,当返回值等于-1的时候是设置的
时间到,窗口自动关闭。
四、几个应用实例
1、弹出提示窗口,5秒钟内用户没有点击的时候自动关闭窗口,显示返回值
VBS dim ivar
VBSCall Call popbox("testing......",5,"测试窗口",0,ivar)
VBSCall Call MessageBox(ivar)
EndScript
2、弹出提示窗口,询问脚本走向,如果用户选择是则按提示走向运行,选择否则按默认走向,取消则
脚本终止
VBS dim ivar
VBSCall Call popbox("选择“是”运行子程序1,“否”运行子程序2,“取消”终止脚本",0,"请你选择走向",35,ivar)
Delay 100
IfExpression ivar=6
    VBSCall Call MessageBox("你选择了“是”,现在运行的是子程序1")
EndIf
IfExpression ivar=7
    VBSCall Call MessageBox("你选择了“否”,现在运行的是子程序2")
EndIf
IfExpression ivar=2
    VBSCall Call MessageBox("你选择了“取消”,现在终止脚本")
EndIf
EndScript
3、弹出错误提示窗口,用户选择脚本终止/重试/忽略
VBS dim ivar
VBSCall Call popbox("发现错误,请你选择",0,"脚本错误信息",18,ivar)
Delay 100
IfExpression ivar=5
    VBSCall Call MessageBox("你选择了“忽略”")
EndIf
IfExpression ivar=4
    VBSCall Call MessageBox("你选择了“重试”")
EndIf
IfExpression ivar=3
    VBSCall Call MessageBox("你选择了“终止”")
EndIf
EndScript
4、弹出窗口提示信息,直到点是才继续
VBS dim ivar
Rem question
VBSCall Call popbox("赞同使用正版按键精灵选择“是”,不赞同使用正版选择否“否”,只有选择“是”脚本才会继续运行",0,"请你选择",4,ivar)
Delay 100
IfExpression ivar<>6
    Goto question
EndIf
VBSCall Call MessageBox("感谢你选用正版,现在脚本继续运行!")
EndScript
简单就好!
这个没必要这么麻烦
set fso=CreateObject("Scripting.Filesystemobject")
set Obj=createobject("WScript.Shell")
yesno=Obj.Popup()
这样就能在按键调用
简单就好!


太深,还没学好,过些时候可能会好些。

重重滴飞过。。。。
要变的比昨天的自己更强  ~!                           
随便看了下   还好吧   感觉以前学的编程都可以随便用MsgBox()方式输入数据的  安键这个好象就麻烦了点
我垃圾,还是自己去学吧``
﹣□祢莂莣記 莪們噠約萣"`、
`﹣■弌淔在ωō伈裏o. ﹖!﹌
       ﹣□鈈鳤祢在哪裏.] .'>°
           ﹣■鈈婹莣釕ωō姷哆嚒璦祢─|_°
返回列表