Wincc中使用VBS实现弹窗定时自动关闭功能
长久以来在使用VBS脚本过程中,在弹窗这块只使用过msgbox,根据需求设置格式进行弹窗,或者进行二次确认的功能,都是使用msgbox。最近,有个项目需求,该弹窗在弹出以后超过3秒无任何操作的时候,会自动关闭。这时候再使用msgbox就无法满足要求了,于是想到了popup这个函数。介绍如下:
其用法与msgbox类似,只是多了一个延时自动关闭的过程。以下表格为其属性介绍:
以下表格是popup返回值的介绍:
使用公式如下:
BT= ws.Popup(strText,[nSecondsToWait],[strTitle],[nType])
参数
ws为WshShell 对象。
strText为要显示在弹出式消息框中的文本的字符串值。
nSecondsToWait为弹出式消息框最长显示时间(秒)的数值。
strTitle为包含要作为弹出式消息框的标题显示的文本的字符串值。
nType为要显示在弹出式消息框中的按钮和图标类型的数值。这些类型确定消息框的使用方法。
BT表示用户单击以解除消息框的按钮号的整数值。该值由 Popup 方法返回。
说明
无论主机可执行文件(WScript.exe 或 CScript.exe)是否运行,Popup 方法都显示一个消息框。如果 nSecondsToWaitis 等于零(默认值),弹出式消息框将保持可见,除非用户关闭它。如果 nSecondsToWaitis 大于零,则弹出式消息框在 nSecondsToWait 秒之后关闭。如果未提供参数 strTitle,则在默认情况下,弹出式消息框的标题为 "Windows Script Host"(Windows 脚本宿主)。nType 的含义与 Microsoft Win32? 应用程序编程接口的 MessageBox 函数的含义相同。下列各表显示这些值及其含义。您可组合这些表中的值。
于是根据以上内容,在Wincc中新建一个按钮,在按钮左键点击事件中创建了一下脚本:
Dim ws Set ws = Createobject("wscript.shell") ws.popup "消息",5,"标题",vbInformation+vbSystemMODAL '5为延时五秒,64用法见下图
通过测试,当弹窗出现时,点击确认弹窗会立即消失,如果不点击确认,弹窗会在设定的5秒之后自动消失,加入vbSystemMODAL参数的目的是为了让弹窗始终保持在最前。